Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 家长';s stopPropagation正在禁用孙辈';s功能_Javascript_Jquery_Html - Fatal编程技术网

Javascript 家长';s stopPropagation正在禁用孙辈';s功能

Javascript 家长';s stopPropagation正在禁用孙辈';s功能,javascript,jquery,html,Javascript,Jquery,Html,我有一个模式,当open得到这个jquery语句时: $(".modal-inner").on("click", function(e) { e.stopPropagation(); }); 问题是,嵌套在这个模态体中,我有一个子元素,我正在使用Clipboard.js,因此用户可以复制文本。HTML格式如下: <div class="modal-inner"> <!-- stopPropagation applied to parent -->

我有一个模式,当open得到这个jquery语句时:

  $(".modal-inner").on("click", function(e) {
    e.stopPropagation();
  });
问题是,嵌套在这个模态体中,我有一个子元素,我正在使用Clipboard.js,因此用户可以复制文本。HTML格式如下:

 <div class="modal-inner"> <!-- stopPropagation applied to parent -->
   <div class="modal-close" for="modal-1"></div>
     <h1>Let's Connect</h1>
     <i class="e"></i>
     <p>You can reach me at:</p>
     <p class="em">
       <input id="emailToCopy" value="this.email@gmail.com"/>
       <!-- This grandchild's functionality is now disabled -->
       <button class="clip-btn" id="thisClip"  data-clipboard-action="copy" data-clipboard-target="#emailToCopy" value="clipBtn">copy email</button>
     </p>
 </div>

让我们连线
您可以通过以下地址与我联系:

复制电子邮件


modal internal上的stopPropagation可防止用户在单击内部时关闭modal。这反过来会禁用我的按钮,该按钮在单击时执行脚本。我需要这个按钮来绕过父元素的stopPropagation。

这可能并不优雅,但我相信会起作用:

$(".modal-inner").on("click", function(e) {

    if (!$("button").is(":hover")) e.stopPropagation();

});

这可能并不优雅,但我相信会奏效:

$(".modal-inner").on("click", function(e) {

    if (!$("button").is(":hover")) e.stopPropagation();

});

您可以检查按钮是否被单击,并有条件地停止传播

$(".modal-inner").on("click", function(e) {

   if ( $(e.target).closest('#thisClip').length > 0 ) { // this is the button
       e.stopPropagation();
   }

});

您可以检查按钮是否被单击,并有条件地停止传播

$(".modal-inner").on("click", function(e) {

   if ( $(e.target).closest('#thisClip').length > 0 ) { // this is the button
       e.stopPropagation();
   }

});

您可以尝试测试事件目标id和标记名:

$('.model-inner')。在(“单击”上,函数(e){
//
//您也可以使用:
//if($(e.target).is('#thisClip')){
//
如果(e.target.id='thisClip'&&e.target.tagName=='BUTTON'){
e、 停止传播();
log('您单击了按钮:停止传播');
}否则{
log('您没有单击按钮');
}
});

让我们连线
您可以通过以下地址与我联系:

复制电子邮件


您可以尝试测试事件目标id和标记名:

$('.model-inner')。在(“单击”上,函数(e){
//
//您也可以使用:
//if($(e.target).is('#thisClip')){
//
如果(e.target.id='thisClip'&&e.target.tagName=='BUTTON'){
e、 停止传播();
log('您单击了按钮:停止传播');
}否则{
log('您没有单击按钮');
}
});

让我们连线
您可以通过以下地址与我联系:

复制电子邮件


谢谢你的回答,但是这个解决方案在单击按钮时关闭模式。@user2588166-哦,我明白了,你试图阻止按钮传播,但不是模式的其余部分?现在试试,效果正好相反。谢谢你的回答,但是这个解决方案在单击按钮时关闭模式。@user2588166-哦,我知道了看,你试图阻止按钮传播,但不是模态的其余部分?现在试试,效果相反。谢谢,不幸的是如上所述。谢谢,不幸的是如上所述。谢谢你的回答。我想我在措辞上失败了,因为回答与我想完成的相反。模态体h因为当打开时,stopPropagation附加到它。因此,嵌套在里面的按钮也有一个功能受到影响。我希望该按钮忽略或绕过模态体的stopPropagation。如果我的原始问题中不清楚的话,我很抱歉。谢谢你的回答。我想我的问题在措辞上失败了,因为回答与wh相反首先,我希望完成。模态体在打开时附加了StopRopAgation。因此,嵌套在其中的按钮也有一个功能受到影响。我希望该按钮忽略或绕过模态体的StopRopAgation。如果在我的原始问题中不清楚,我很抱歉。