升级到jQuery 1.7.x后,jQuery UI droppable的event.target发生了变化

时间:2012-01-02 09:48:03

标签: jquery jquery-ui

我正在尝试将jQuery从1.4.1升级到1.7.1,并发现jQuery UI可放置功能存在问题。我正在使用jQuery 1.8.16和这个Multi-Select, Drag & Drop插件,发现使用它的我的页面在升级后不再起作用了。经过几个小时的调试后,我发现事件对象的target属性不再包含相同的元素了。

最简单的解释是一个例子,所以我创建了this on jsfiddle

$(function() {
  $("#draggable").draggable();
  $("#droppable").droppable({
      drop: function(event, ui) {
          $(this).addClass("ui-state-highlight").find("p").html("Dropped!");
          $('#target-content').html($(event.target).html());
      }
  });
});

<div class="demo">      
<div id="draggable">     
    <p>Drag me to my target</p>
</div>  
<div id="droppable">
    <p>Drop here</p>
</div>
<div id="test"></div>
</div>

现在,当您在jsfiddle上使用jQuery 1.5.2(或1.6.4,但此版本由于某种原因不包含jQuery UI),并将红色框拖到绿色框上时,event.target是参考绿色框,从而显示内部文本。但是,当你使用jQuery 1.7.x时,event.target引用了红色框!

对我来说,jQuery UI 1.8.x中似乎缺乏对jQuery 1.7.x的支持,我在主页上找不到任何可以提及的地方。

现在,我该怎么办?我可以在Multiselect,Drag&amp; amp;删除插件,但如果以后修复此错误,可能会再次破坏它。

1 个答案:

答案 0 :(得分:1)

现在已经有一段时间了,但迟到总比没有好。

自版本1.8.17以来已发布了一些版本(在撰写本文时,当前版本为1.8.20)。

在js小提琴上,现在可以使用jQuery UI 1.8.18,see this example选择jQuery 1.7.2。 它似乎适用于这个版本,所以我们希望它在未来版本中也能这样做。