Jquery 简单切换问题
我只是在编写一个小函数,通过淡入淡出来切换内容Jquery 简单切换问题,jquery,Jquery,我只是在编写一个小函数,通过淡入淡出来切换内容 this.advancedSearch = function(fieldset, triggerBtn){ fieldset.hide() triggerBtn.click(function(){ fieldset.toggle(function(){ $(this).stop(false, true).fadeIn(300) }, function(){ $(this).stop(false, true).fade
this.advancedSearch = function(fieldset, triggerBtn){
fieldset.hide()
triggerBtn.click(function(){
fieldset.toggle(function(){ $(this).stop(false, true).fadeIn(300) }, function(){ $(this).stop(false, true).fadeOut(300) });
return false;
})
}
如果我只使用
toggle()
它就可以工作,但是当我插入这两个函数时,什么都不会发生,也不会抛出错误。我做错了什么吗?我假设您打算让triggerBtn在字段集上触发切换事件
如果是,请尝试以下方法:
this.advancedSearch = function(fieldset, triggerBtn){
fieldset.hide();
triggerBtn.click(function(){
fieldset.click();
});
fieldset.toggle(function(){ $(this).stop(false, true).fadeIn(300) },
function(){ $(this).stop(false, true).fadeOut(300) })
}
按照您的方式,每次单击triggerBtn
,都是将切换事件处理程序分配给字段集
编辑:
或者,如果您根本不需要字段集上的click(toggle)事件,那么David的答案就可以了。您希望将toggle事件附加到被单击的对象:
this.advancedSearch = function(fieldset, triggerBtn) {
fieldset.hide()
triggerBtn.toggle(
function(){ fieldset.stop(false, true).fadeIn(300) },
function(){ fieldset.stop(false, true).fadeOut(300) }
);
}
toggle
函数绑定元素上的单击事件,该事件自动切换元素。。因此,在按钮单击回调中调用toggle不会切换元素,它只是绑定一个事件。手动实现比使用切换要简单得多
this.advancedSearch = function(fieldset, triggerBtn){
fieldset.hide()
triggerBtn.click(function(){
if(fieldset.hasClass('toggle-on')) {
fieldset
.removeClass('toggle-on')
.stop(false, true).fadeOut(300);
}
else {
fieldset
.addClass('toggle-on')
.stop(false, true).fadeIn(300);
}
return false;
})
}
很酷,谢谢它能工作,为什么我刚写的时候它还能工作。toggle()?toggle()
根据传入的参数有不同的功能。哦,我不知道它绑定了一个点击事件!谢谢,但如果您知道如何使用,那么只需切换就可以更快地编写和使用:P