我编写了以下简单代码以了解其工作原理:<div title="1"> one <p title="2">two</p></div><br /><div id="result"></div><script src="jquery-1.8.0.min.js"></script><script>$(document).ready(function(){ //$("body").on("mouseover","*",function(){ //$("body").on("mouseenter","*",function(){ var html = $(this).attr("title"); console.log(html); $("#result").text(html); //});});</script>当我使用mouseover时,问题在于当我指向two时,事件监听器将首先在two上触发,然后在one上触发,因此效果将类似于我指向one的情况。另一方面,如果我使用mouseenter,则如果我指向two而未指向one,则会出现问题,结果将是one。如果我指向one,然后指向two,然后再次指向one,则将完全没有效果,因为two是one的一部分,所以js认为我仍然在,将无法正常工作。有什么解决办法吗? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 这是由于事件冒泡造成的,您可以参考以获取解决方案http://api.jquery.com/event.stoppropagation/您也可以使用全局标志变量来检测事件关于javascript - 当鼠标从子级悬停到父级时运行的jQuery事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24394869/ (adsbygoogle = window.adsbygoogle || []).push({});
10-10 00:27
查看更多