相关文章推荐
活泼的领结  ·  xulrunner-1.9.2.28pre. ...·  1 年前    · 
要出家的鞭炮  ·  Uncaught ...·  1 年前    · 
儒雅的枇杷  ·  VM Environment Fails ...·  2 年前    · 
眼睛小的生姜  ·  android - error: ...·  2 年前    · 

当活的孩子被点击时,我如何禁用父母的点击?

0 人关注

因此,当我需要阻止父代在点击子代时的默认动作时,我通常只使用stopPropegation。然而,这似乎对活的元素不起作用。所以我有个想法,当孩子被悬停在上面时,暂时移除父类的onclick属性。我似乎可以很好地删除它,但我似乎无法将它重新添加到元素中......这就是我想出的办法......

$('body').delegate('.button', 'mouseenter mouseout', function(e){
        if(e.type=='mouseenter'){
          var inside = $(this).parents('.post').attr('onclick');
          $(this).parents('.post').attr('onclick','');
        }else if(e.type=='mouseout'){
          $(this).parents('.post').attr('onclick', inside);

因此,这将成功地删除该元素,但试图将其添加回来总是不成功......它只是出现了空。有谁能帮我一下吗?我完全被卡住了。我也很乐意用其他方法来实现同样的结果。谢谢你。

javascript
jquery
hover
live
Ian
Ian
发布于 2012-01-13
2 个回答
itea
itea
发布于 2012-01-13
已采纳
0 人赞同

试试这个 http://jsfiddle.net/kDuNU/4/。

$('div').live('click', function(event) {
    if ($(event.target).hasClass('button'))
       return;
    alert('hello');
$('.a-span').live('click', function (event) {
    alert($(this).text());
$('div').append('<span class="a-span button">another</span>');
<div> hello <br/>
<span class="a-span">world</span>
</div>
itea
@itdoell "我需要防止在孩子被点击时父方的默认动作" 我的代码和你预期的一样。但你需要把它改写成你自己的代码。
Ian
我不是这么说的...我说的是在一个活的元素上...这不是一个活的元素...
Ian
好吧,我收回这句话,你的方案确实有效,只是我不想对所有的孩子都屏蔽,我只想对.button的孩子屏蔽。所以这个方案对我的情况来说似乎并不实用。不过还是谢谢你
itea
@itdoell 试试这个新版本,它可以检查.button类。
Sudhir Bastakoti
Sudhir Bastakoti
发布于 2012-01-13
0 人赞同

试试这样的方法。

if (e. type == 'mouseenter' ){ $( this ). parents ( '.post' ). unbind ( 'click' ); } else if (e. type == 'mouseout' ){ $( this ). parents ( '.post' ). bind ( 'click' ); //OR place your inside variable before if, like var inside = $( this ). parents ( '.post' ). attr ( 'onclick' ); //placed outside of if if (e. type == 'mouseenter' ){ $( this ). parents ( '.post' ). attr ( 'onclick' , '' ); } else if (e. type == 'mouseout' ){