Javascript jQuery-覆盖事件?
我的页面包含一些可拖动的Javascript jQuery-覆盖事件?,javascript,jquery,events,Javascript,Jquery,Events,我的页面包含一些可拖动的div元素(notjqueryui可拖动) 现在我们想添加一个新功能:用户应该能够一次选择多个div,并拖动这些div元素,而不会触发以前的绑定事件 现在我的问题是: 是否可以禁用每个div的mousedown、mousemove和mouseup事件,只要它们是选择的一部分 因此,基本上我想用一个新的替换旧事件,然后恢复原始事件 谢谢你的时间 更新: 我写了一个小脚本来测试stopimediatepropagation 使用以下代码: $("p")
div
元素(notjqueryui可拖动)
现在我们想添加一个新功能:用户应该能够一次选择多个div
,并拖动这些div
元素,而不会触发以前的绑定事件
现在我的问题是:
是否可以禁用每个div
的mousedown
、mousemove
和mouseup
事件,只要它们是选择的一部分
因此,基本上我想用一个新的替换旧事件,然后恢复原始事件
谢谢你的时间
更新: 我写了一个小脚本来测试
stopimediatepropagation
使用以下代码:
$("p").click(function(event){
alert ( ' I am the old event ' );
});
$("a").click( function()
{
$("p").click(function(event){
event.stopImmediatePropagation();
alert ( ' I am the new event ' );
});
return false;
});
它不作为event.stopImmediatePropagation()工作代码>在第一个事件之后调用。
因此,结果是:
我是老事件
我是新的事件
您可以查看event.stopImmediatePropagation()
请看下面的图片
基本上,您可以让一个函数选择性地阻止其他函数运行-您不需要删除和重新绑定这些函数
这是来自JSBin的代码,我对其进行了修改以使其正常工作。它有点粗糙,可能不是很有效,但它可以工作
$("p").click(function(event){
alert ( ' I am the old event ' );
});
$("a").click( function() {
$("p").each(function() {
var $t = $(this);
var events = $t.data("events");
$t.unbind('click');
$t.click(function(event){
event.stopImmediatePropagation();
alert ( ' I am the new event ' );
});
for (var i = 0, l = events.length; i < l; ++i) {
$t.click(events[i]);
}
});
return false;
});
$(“p”)。单击(函数(事件){
警惕(“我是旧事件”);
});
$(“a”)。单击(函数(){
$(“p”)。每个(函数(){
var$t=$(本);
var事件=$t.data(“事件”);
$t.unbind('click');
$t.click(函数(事件){
事件。stopImmediatePropagation();
警惕(“我是新事件”);
});
对于(变量i=0,l=events.length;i
你就不能解除绑定()
事件吗
请参见您好,谢谢您的回复。这正是我一直在寻找的。但是,它不起作用。有关详细信息,请参阅我更新的帖子。