2017-07-25 131 views
0

我想爲body,html元素做功能,同時點擊文檔上的任何位置,並且還有一個div標籤,onclick事件將在那裏。兩者都互相沖突如何防止點擊該div時。都嘗試事件停止傳播和事件預防defaul 例如: JD無非是jQuery的如何在點擊身體點擊時防止div上的onclick事件?

$jd = jQuery 

以下事件應該只觸發特定的div。但他的事件與身體onclick衝突。

$jd('.menu-left a').click(function(){ 
      $jd('.menu-left a').removeClass('active');   
      if($jd(this).hasClass('add_item_team')) self.team.create(); 
      if($jd(this).hasClass('add_item_qrcode')) self.qrcode.open(); 
      $jd(this).addClass('active'); 
      jQuery("#text-lock").trigger("click"); 
     }); 

jQuery(document).on('click','body',function(event){ 
/*console.log("adsfasddfs"); 

    var finding_span; 
    finding_span = $jd(".design-area").find('.content-inner span.drag-item'); 

    if(event.target.id == "dg-left"){ 
    return false; 
    }else{ 
     if(finding_span.length>0){ 

     console.log("cameeeee"); 
     design.item.unselect(); 

     } 
    }*/ 
    var finding_span; 
    finding_span = $jd(".design-area").find('.content-inner span.drag-item'); 

    if(finding_span.length>0){ 
     design.item.unselect(); 
    } 
+0

你想點擊一個div,而不是身體?您的問題不清楚 –

+0

使用event.preventdefault()和stoppropagation()來防止事件冒泡。檢查Internet上的預防性默認設置以獲得更多理解 –

+0

上述代碼中的$ jd是什麼? –

回答

1
jQuery(document).on('click','body',function(event){ 
    event.preventDefault(); 
    event.stopPropagation(); 
    var finding_span; 
    finding_span = $jd(".design-area").find('.content-inner span.drag-item'); 

    if(finding_span.length>0){ 
     design.item.unselect(); 
    } 

希望這可以幫助你

0

請嘗試以下

$jd(function(){ 
     event.preventDefault(); 
     event.stopPropagation(); 
     $jd('.menu-left a').click(function(){ 
     $jd('.menu-left a').removeClass('active');   
     if($jd(this).hasClass('add_item_team')) self.team.create(); 
     if($jd(this).hasClass('add_item_qrcode')) self.qrcode.open(); 
     $jd(this).addClass('active'); 
     jQuery("#text-lock").trigger("click"); 
    }); 
    }); 
0
jQuery(document).on('click','html,body,#main',function(event){ 
event.preventDefault(); 
    event.stopPropagation(); 


    if(event.target.id=="text-lock"){ 
     return false; 

    } 

    var finding_span; 
    finding_span = $jd(".design-area").find('.content-inner span.drag-item'); 

    if(finding_span.length>0){ 
     design.item.unselect(); 

     jQuery(".add_item_text").css({'background-color':'#f6f6f6','color':'#333'}); 
    } 
相關問題