2012-04-10 90 views
0

我知道这是一个骇人听闻的问题,但基本上我想利用live()的缺陷之一,但不希望我的代码通过使用过时因为它已被弃用。如何复制jQuery live()stopPropagation覆盖on()

这是我的情况:

我在Wordpress中使用Aloha编辑器。我想要做的是在编辑器处于活动状态并单击图像时在图像上启动一些额外的功能。

问题是,阿罗哈停止在包裹图像的链接上传播点击。通过使用live()我可以覆盖这个,就像我使用on()它服从停止传播。尽管我不想使用已弃用的代码,但是有人知道我可以如何使on()忽略此停止传播吗?

我认为在JQ线索指出活()

在事件处理程序调用event.stopPropagation()是在阻止事件处理程序附加在文档中较低无效;该事件已经传播到文档。

所以我认为我需要做同样的on(),但不能解决如何做到这一点。我想我应该对Aloha做一些改变,但是它的体积太大了,有点吓人。

+0

据我所知,'live'不服从'stopPropagation'所以也许我误解的问题。 http://jsfiddle.net/SnwrL/ – 2012-04-10 22:00:18

+0

作为一个猜测,你试过$(document).on(“click”,“.your-image”,function()...) – 2012-04-10 22:17:31

+0

是的,基本上如果我做jQuery('a.ice_image')。live('click',function(){... 它工作,如果我这样做 jQuery('a.ice_image')。on('click',function ){... Aloha阻止它,我不确定它是否停止传播或类似的,因为我说的阿罗哈代码就像20Mb,所以这就是我真正要求的是,有没有一种方法使on()不当行为像live()这样做,我不需要破解Aloha ... – 2012-04-11 15:31:21

回答

0

这将覆盖event.stopPropagation()document.querySelector('#adv_search_i').addEventListener('click', function(e){ //code });