在jquery中禁用onclick功能的父/子容器

问题描述:

我想在父容器上点击子容器中的图像链接时,忽略onclick。在jquery中禁用onclick功能的父/子容器

我在一个名为“.sight-title”的容器上使用了onlick: - 用toggleClass(“active”)更改类;

<div class="sight-title" id="S2851"> 
    <div class="row1"></div> 
    <div class="row2"></div> 
</div> 

点击后: -

初始状态Ajax调用改变内容

<div class="sight-title active" id="S2851"> 
    <div class="detail1"> 
    <a class="wikilink" target="_blank" title="en.wikipedia.org/wiki/Marollen" href="http://en.wikipedia.org/wiki/Marollen"><img src="img/contact/culisite_wikipedia.png" border="0"></a> 
    </div> 
    <div class="detail2"></div> 
</div> 

当德父 “.sight标题” 再次点击它变回初始状态。

但是,当class =“wikilinks”被点击时,我不想在父容器上的onclick工作。

jQuery代码:类= “wikilinks” 被点击时,其他部分应该被禁用...

$(".sight-title").click(function() { 
       var id=$(this).attr("id");          
       $("#"+id).toggleClass("active");      
       if($(this).hasClass("active")){ 
        $("#"+id).html(ajax_load); 
        $.get( 
        loadUrlDetail+"?id="+id+'&arrondissement='+arrondissement, 
        {language: "php", version: 5}, 
        function(responseText){ 
         $("#"+id).html(responseText); 
        }, 
        "html" 
        ); 
       } else { 
        $("#"+id).html(ajax_load); 
        $.get( 
        loadUrlTitle+"?id="+id+'&arrondissement='+arrondissement, 
        {language: "php", version: 5}, 
        function(responseText){ 
         $("#"+id).html(responseText); 
        }, 
        "html" 
        ); 
       } 
      }); 

使用jQuery的解除绑定:http://api.jquery.com/unbind/

$('a.wikilink').click(function() { 
    //do stuff 
    $('a.sight-title').unbind('click'); 
}); 

编辑2:

如果链接不存在,则可能需要使用live,而不是在创建链接时k事件。

$('a.wikilink').live('click', function() { 
    //do stuff 
    $('a.sight-title').unbind('click'); 
}); 

编辑:

作为一个侧面说明,你可能想利用jQuery's load function,而不是你的GET和这样。

我想你会发现它让你的生活更轻松。

你也应该看看你的选择器。您选择与$("#"+id)完全相同的对象,而不是仅仅执行$(this)

+0

似乎没有工作...我已经把它放在$(“。sight-title”)之前,点击部分 – 2011-04-11 21:03:35

+0

你没有足够的实际能够分辨,但是如果你的.wikilink链接不仅仅是隐藏的,而是被加载,使用live来代替:'$('a.wikilink')。live('click',function(){...});'' – 2011-04-12 14:17:34