Tag: 事件传播

如何使用更新后的代码修改幻灯片切换来停止事件传播。

我有一个jqueryfunction,我有两个选项卡。 click ,每个选项卡都会进行ajax调用并绘制一个jsp页面。 第二个选项卡有一个幻灯片切换。 我的问题是,当页面加载时,我点击第二个选项卡,幻灯片切换工作正常。 当我单击第一个选项卡并单击第二个选项卡时,幻灯片切换将快速打开和关闭。 如何阻止这种传播? 我尝试了事件.preventDefault() , stopPropagation() , die等等。没有运气。 我试过的代码如下。 幻灯片切换方法是一个js文件,另外两个在不同的js文件中。 jQuery(function() { //$(“.trigger1”).on(‘click’, function (e) { $(“#qstnlist_content”).off(‘click’, ‘.trigger1’).on(‘click’, ‘.trigger1’, function(event) { // $(“.trigger1”).die(‘click’).live(‘click’,function(event){ //if($(event.target).is(‘div.trigger1’)){ //$(“document”).off(‘click’, “#list_intrv_qstns”).on(‘click’, “#list_intrv_qstns”, function (e) { var str = $(this).find(“span.imgplus”).text(); if (str.indexOf(“+”) >= 0) $(this).find(“span.imgplus”).html(“- “); if (str.indexOf(“-“) >= 0) $(this).find(“span.imgplus”).html(“+ “); $(this).next(“div.dispnone”).slideToggle(“slow”); /* if(event.preventDefault){ event.preventDefault()} else{event.stop()}; event.returnValue = […]

event.stopPropagation()在使用jQuery 1.7的chrome中不起作用

出于某种原因,单击文档无法在Chrome中运行(未调用closeQuickView)。 元素是通过AJAX加载的,因此需要有.on()动作(以前的.live()现在已经在jQuery 1.7中弃用了) 使用此处给出的示例: 如何检测元素外部的单击? 作为基础 $(‘html’).on(‘click’, ‘.poster:not(.active) .image-effect’, function (event) { var obj = $(this).parent(); // If there are no .close spans if (obj.find(‘.close’).length === 0) { // Add the close element by javascript to remain semantic obj.find(‘.quick-view’).append(‘×’); } // Close any open Quick Views closeQuickView(); // Add the active class (controls opacity) obj.addClass(‘active’); […]

使用jQuery在外部单击时隐藏DIV,但允许传播事件

我已经阅读了很多其他问题,涉及如何在你点击它之外关闭div,但我有一个复杂的问题,因为我有其他元素与.live()绑定 我想要发生的是,如果我点击页面上的任何其他地方,div应该消失,包括我点击“实时”元素。 当我点击那个实时元素时,我希望它的处理程序能够正常进行。 到目前为止,我已经阅读过,处理关闭div的基本方法是将一个点击监听器附加到或$文档,但是这会阻止任何其他直播事件冒出前面的body / doc处理程序。 有没有解决的办法?

如何阻止孩子传播由live / delegate listener触发的事件?

我有一个委托父母,在一组具有特定类的子项中侦听单击事件。 $(“.toggle_group”).on(“click”,”.toggle”,function(e){ .. }); 所以这是一个html的例子 click me and i toggle Im a child of toggle click me and i toggle Im a child of toggle click me and i toggle Im a child of toggle click me and i toggle Im a child of toggle 问题是a.toggle子a.toggle将事件传播给父节点,当它不应该触发处理程序时。 根据jQuery文档,您无法阻止活动/委派事件侦听器上的事件传播。 如何阻止a.toggle的子子元素将事件传播给父级? 或者在某些情况下允许它? 你看到.toggle的内部div应该是一个下拉菜单。 只有当您单击切换链接时,才能在单击菜单时切换…

没有正确检测到jQuery mouseup

我有一个包含跨度的div。 我有一个mouseup和mousedown事件,当按下div时应该触发。 但它无法正常工作。 请到这个小提琴: http : //jsfiddle.net/Ym7rM/ 如果您选择文本然后尝试拖动它,它只会检测mousedown事件,但不会检测鼠标。 我究竟做错了什么? 我正在使用Chrome。 谢谢 编辑: 对不起,我简化了问题,看到了新的小提琴。

Javascript中的事件传播

如果我有一个嵌套在另一个元素中的元素(html)并且它们都附加了一个单击处理程序,则单击内部元素将执行其单击处理程序,然后冒泡到父级并执行其单击处理程序。 这就是我理解它的方式。 如果没有附加的事件是相同的,事件会冒出DOM树吗?如果是这样,是否值得在每个处理程序的末尾放置一个event.stopPropagation()来阻止它并加快速度?