这个问题已经解决了很多次,但是在我看来,这里找到的解决方案仍然无法解决问题。
我使用我购买的jQuery脚本(Codecanyon Real3d动画书),该脚本具有自己的js文件。 该脚本在称为“ .flipbook-right-arrow”的跨度上附加了一个类。并应用了“ NextPage()”功能。
我想做的是在我自己的自定义js文件中,在另一个事件的基础上添加我的另一个事件(原始的缩小脚本太复杂,太复杂了,我不敢理会)。
所以我从平常开始:
$('.flipbook-right-arrow').click(function(){
alert()
})
这是行不通的,而且似乎很正常,因为已添加了该类。
好吧,所以,我在各处读到,这是正确的方法:
$(document).on('click', '.flipbook-right-arrow', function() {
alert();
});
但还是没事...
我也尝试了这些,但没有成功:
$( ".flipbook-right-arrow" ).live( "click", function() {
alert();
});
$( document ).delegate( ".flipbook-right-arrow", "click", function() {
alert();
});
$('.flipbook-right-arrow').on('click', function(){
alert();
});
以下是将按钮添加到原始脚本中的方式:
self.btnNext = jQuery('<div class="flipbook-nav"><div class="flipbook-arrow-wrapper"><span class="flipbook-right-arrow skin-color skin-color-bg"></div></div>')
.appendTo(self.bookLayer)
.bind('tap click', function(e) {
if (self.btnNext.disabled) return;
self.btnNext.disabled = true
setTimeout(function() {
self.btnNext.disabled = false;
}, 300)
e.stopPropagation(); //here was the problem!
e.preventDefault();
self.Book.nextPage();
});
出什么问题了? 是事件处理问题还是范围问题? 我只是不知道而且我还不足以深思熟虑。
仅供参考:
我也“ e.prevenDefault()”编辑了它们,但没有成功。
我的自定义js文件在所有其他脚本之后加载。
谢谢。
答案 0 :(得分:1)
尝试一下:
$('.flipbook-right-arrow').on('click', function(){
alert()
});
还要确保,因为“动画书右箭头”是一类,因为这就是您的称呼方式。
答案 1 :(得分:1)
尝试一下,看看您的事件是否是事件触发的
$(document).on('click', '.flipbook-right-arrow', function(e) {
e.stopPropagation()
alert('Why hello there')
});
注意::我通过的e
作为函数的参数。那就是事件。现在,我们试图通过调用stopPropagation()
来停止对该事件的所有绑定操作。
答案 2 :(得分:1)
Jeto发现了问题(谢谢)。
原始脚本停止了事件的传播,所以我摆脱了该指令,一切正常。
感谢大家的帮助!