2017-07-25 130 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'}); 
    } 
相关问题