我有一个简单的函数,当用户点击给定的复选框时会显示div。我想在另一个复选框上有相同的行为,所以这就是为什么我想将它概括为传递要显示的元素的函数。
但我不知道Jquery的语法是这样做的。它会在页面加载时自动触发。有人有想法吗?
代码:
$(document).ready(function() {
$("#transcricao").change(
function(){
if ($('.form_transcr').css('display') === 'none') {
$('.form_transcr').fadeIn();
} else {
$('.form_transcr').fadeOut();
}
}
); //This is working fine!
$("#traducao").change( show_hide($('.form_trad')) );
//This is auto-trigerring without user action...
});
这是我的功能:
function show_hide($elm){
//This is the "generalized" function that I'd like to use on both
//checkboxes, just passing the element.
if ($($elm).css('display') === 'none') {
$($elm).fadeIn();
} else {
$($elm).fadeOut();
}
}
答案 0 :(得分:0)
由于您正在调用它,因此无需用户操作即可自动触发。
使用
$("#traducao").change(function () {
show_hide($('.form_trad'));
});
当您传递jQuery对象时,请直接使用
function show_hide($elm) {
//This is the "generalized" function that I'd like to use on both
//checkboxes, just passing the element.
if ($elm.css('display') === 'none') {
$elm.fadeIn();
} else {
$elm.fadeOut();
}
}
答案 1 :(得分:0)
.change()
的参数应该是一个函数。您没有传递函数,而是调用函数。
$("#traducao").change(function() {
show_hide($('.form_trad'));
} );
顺便说一下,你的show_hide
函数似乎等同于jQuery的fadeToggle
方法,所以它可以是:
$("#traducao").change(function() {
$(".form_trad").fadeToggle();
});