2010-03-13 43 views
1

是否可以停止自动preventDefault()在简单的JQuery切换函数中应用?JQuery的切换功能,不会返回false?

$(".mydiv").toggle(
    function() { 
     $(this).addClass("blue"); 
    }, 
    function() { 
     $(this).removeClass("blue"); 
    } 
); 

上面的内容可以防止div内的元素正常响应点击。

它不一定是toggle()函数 - 任何允许打开和关闭类并不返回false的东西都会很棒。

谢谢。

回答

1

的文件承认,这是一个限制:

由于.toggle()在内部使用点击处理程序来完成工作,就必须解除绑定单击清除附着与.toggle()行为,所以其他点击处理程序可以在交火中被抓住。该实现还会在事件上调用.preventDefault(),因此如果在元素上调用了.toggle(),则链接将不会被按下,并且按钮不会被单击。

来源:http://api.jquery.com/toggle/

这就是说,没有内置的方法。令人高兴的是,正如文档中所说的那样,“手工执行相同的行为相对简单”。在这种情况下:

$(".mydiv").click(function(){ 
    $(this).toggleClass("blue"); 
}} 

(了解更多关于toggleClass()

+0

神奇的感谢,这就是我一直在寻找。 – Tom 2010-03-13 07:20:31