jquery打开和关闭防止默认

时间:2012-02-23 22:05:46

标签: jquery bind unbind preventdefault

这是我到目前为止所尝试的内容:

var preventDefaultFunc = function(e){   
            e.preventDefault();
        }

然后我稍后在点击功能中调用它:

$('.item').click(function(e){

            var $this = $(this);
            var $thisChild = $this.find('.item-content');
            if ( $this.hasClass('big') ) {
                return false;
            }

            $this.on(preventDefaultFunc);
    // make the box bigger and load the article inside it here
});

我是这样做的,所以我可以稍后再关闭它,因为有问题的div需要允许其中的点击一旦变大。

打开/关闭开关不起作用,因为它应该阻止页面加载框内的链接,这样我可以使框更大并用ajax加载文章。请注意,on / off是绑定/取消绑定的jquery 1.7版本。

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

试图理解你的意思,让我们捅一下: - )

  $('.item').on('click',function(e){
        e.preventDefault();
        var $this = $(this);
        var $thisChild = $this.find('.item-content');
         if ( $this.hasClass('big') ) {
             return false;
          }
       //-- this should unbind your click 
      $('.item').off('click');

      // make the box bigger and load the article inside it here
  });

答案 1 :(得分:1)

如果您要停止默认点击操作,只需将其替换为:

$this.on(preventDefaultFunc);

有了这个:

e.preventDefault();

除了阻止默认的点击操作之外,我并不是100%清楚你要做的事情,但它让我觉得你正在过度思考它。如果这没有帮助,请尝试进一步解释您的设置和目标。

答案 2 :(得分:1)

不应该更像     $ this.on('click',preventDefaultFunc) ?