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
你就不能
解除绑定()
事件吗


请参见

您好,谢谢您的回复。这正是我一直在寻找的。但是,它不起作用。有关详细信息,请参阅我更新的帖子。