代码之家  ›  专栏  ›  技术社区  ›  Arfa

jquery单击容器,但免除包装的元素

  •  1
  • Arfa  · 技术社区  · 11 年前

    我使用的是jquery同位素,有一个元素div,其中包含另一个div。这些是瓦片,其中有很多。

    <div class=element > blah blah
    <div class=setStamp>load X text</div>
    blah blah blah blah
    </div>
    <div class=element > blah blah
    <div class=setStamp>load Y text</div>
    blah blah blah blah
    </div>
    

    all.元素上有一个点击触发器,用于切换类“large” 我希望能够单击setStamp而不触发切换。 到目前为止,我最好的方法是双击。

    $container.delegate( '.element', 'dblclick', function(){ // enlarge clicked element
    $(this).toggleClass('large');
    $container.isotope('reLayout');
    });
    

    但我想保持一个简单的点击。 我正在试验。not(),并且一般看起来。 有什么建议吗?

    1 回复  |  直到 11 年前
        1
  •  0
  •   Roko C. Buljan    11 年前
    $container.on('click', '.element', function(){ // enlarge clicked element
    
       $(this).toggleClass('large');
       $container.isotope('reLayout');
    
    }).on('click', '.setStamp', function( e ){
    
       e.stopPropagation();
    
    });
    

    DEMO

    或者也喜欢:

    $container.on('click', '.element', function( e ){ // enlarge clicked element
    
       if(e.target.className=='setStamp') return;
    
       $(this).toggleClass('large');
       $container.isotope('reLayout');
    
    });
    

    DEMO