我有这样的代码。
<td>
<span class='ui-button-next'>NEXT</span>
</td>
此应用程序包含一个库,不允许编辑。在点击“ui-button-next”时,他们正在调用event.stopImmediatePropagation()
来阻止某些事情。
当用户点击此“span”而不触及该库时,我想调用一个函数。
我的自定义代码,如
$(".ui-button-next").click(function(){
});
$(".ui-button-next").bind("click",function(){
});
$(".ui-button-next").on("click",function(){
});
由于库中的event.stopImmediatePropagation()
,无效。 任何解决方法?
非常感谢你!
答案 0 :(得分:3)
您可以访问基础事件列表(数组)并在第一个处插入新的单击处理程序,它将被正常触发,但请注意,在您的情况下执行顺序应该不是问题:
//this is the inner handler
$('.ui-button-next').click(function(e){
e.stopImmediatePropagation();
});
//this is the handler of your own
$('.ui-button-next').click(function(e){
alert('OK');
});
//get click handlers list
var clicks = $._data($('.ui-button-next')[0], 'events')['click'];
//get the last added handler (which is your own handler) and put it at the beginning
clicks.unshift(clicks.pop());
UPDATE :为了保持执行顺序(首先执行默认处理程序,之后执行所有其他添加的处理程序),我认为你必须通过删除所有{修改默认处理程序{1}}方法,我们必须在这里使用e.stopImmediatePropagation()
方法。请注意,在这种情况下使用该方法是完全可以的。
eval()