2

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

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

然后我稍后在 click 函数中调用它:

$('.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版本的bind/unbind。

有什么建议么?

4

3 回答 3

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
  });
于 2012-02-23T22:17:58.533 回答
1

如果您要停止默认的点击操作,只需替换它:

$this.on(preventDefaultFunc);

有了这个:

e.preventDefault();

除了阻止默认的点击操作之外,我还不是 100% 清楚你想要做什么,但在我看来,你想多了。如果这没有帮助,请尝试进一步解释您的设置和目标。

于 2012-02-23T22:10:01.447 回答
1

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

于 2012-02-23T22:12:40.933 回答