Jquery切换函数不返回false?

时间:2010-03-13 06:43:28

标签: jquery function click toggle

是否可以停止自动preventDefault()应用于简单的Jquery切换功能?

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

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

文档承认这是一个限制:

由于.toggle()在内部使用单击处理程序来完成其工作,我们必须解除绑定以删除附加.toggle()的行为,以便其他点击处理程序可以在交火中捕获。该实现还在事件上调用.preventDefault(),因此如果在元素上调用了.toggle(),则不会遵循链接并且不会单击按钮。

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

也就是说,没有内置方式。令人高兴的是,正如文档中所说,“手动实现相同的行为”相对简单“。在这种情况下:

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

(了解有关toggleClass()的更多信息。)