Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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
Jquery 当按下子按钮(具有不同功能)时,卡片翻转。如何停止传播到父级?_Jquery_Html - Fatal编程技术网

Jquery 当按下子按钮(具有不同功能)时,卡片翻转。如何停止传播到父级?

Jquery 当按下子按钮(具有不同功能)时,卡片翻转。如何停止传播到父级?,jquery,html,Jquery,Html,我有一张卡,当有人按下它时,它会被翻转,这完全没问题,这样用户就可以从卡的背面读取更多信息。卡本身包含两个按钮:第一个按钮用于将用户重定向到另一个页面,第二个按钮用于触发模式弹出窗口 我面临的问题是,当我按下任何一个按钮时,两个动作都会执行。例如,按下触发模式弹出窗口的按钮-卡片被翻转,模式出现,您可以在背景中看到翻转的卡片 我如何“隔离”按钮上的点击以不触发卡片翻转 <div class="col-md-4 d-flex align-items-stretch"> <d

我有一张卡,当有人按下它时,它会被翻转,这完全没问题,这样用户就可以从卡的背面读取更多信息。卡本身包含两个按钮:第一个按钮用于将用户重定向到另一个页面,第二个按钮用于触发模式弹出窗口

我面临的问题是,当我按下任何一个按钮时,两个动作都会执行。例如,按下触发模式弹出窗口的按钮-卡片被翻转,模式出现,您可以在背景中看到翻转的卡片

我如何“隔离”按钮上的点击以不触发卡片翻转

<div class="col-md-4 d-flex align-items-stretch">
   <div class="student-card">
      <div class="card" id="busainfo_@i" onclick= "this.classList.toggle('flipped');">
         <div class="card-body d-flex flex-column">
            <h3 class="card-title">Jesper</h3>
            <p class="card-text">Short Description</p>
            <button type="button" class="btn btn-primary redirect_1" click="window.location.href ='https://google.com';"> Read More </button>
            <button type="button" class="btn btn-primary opensend_1" id="opensend_1" data-toggle="modal" data-target="#sendview_1">Send msg</button>
         </div>
         <div class="side back d-flex flex-column">
            <h3>Jesper</h3>
            <p>About Jesper</p>
         </div>
      </div>
   </div>
</div>
我尝试了这个方法,但我的例子无法使它起作用

您可以使用JQuery来完成

您可以将click事件绑定到card元素,当用户单击该卡时,检查单击的目标是否是按钮。如果不是按钮,请翻转卡片。否则,不执行任何操作,将触发默认按钮行为

这样,只有当用户单击卡片时,卡片才会翻转,而不是使用.btn类的元素

$("#busainfo_@i").on("click", function(e){
   if(!($(e.target).hasClass("btn"))){
       $(this).toggleClass("flipped");
   }
});

你能不能也添加js逻辑,这样就更容易找到根本原因了?JQuery逻辑就是我想要得到的答案。除此之外,我没有任何js逻辑。我应该使用busainfo_@I而不是.card?我还使用onclick=this.classList.toggle'flipped';当我定义卡片时,我应该如何在您的示例中实现它?我已经对答案进行了编辑,以使其更加具体。您可以使用ID busainfo_u@i选择元素,也可以使用toggleClass“flipped”切换“flipped”类。如果这样做,可以完全删除onclick=this.classList.toggle'flipped';请注意,您需要JQuery才能使上述代码正常工作。如果您需要它在纯javascript中工作,那么需要一个稍微不同的答案。