我正在尝试将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;删除插件,但如果以后修复此错误,可能会再次破坏它。
答案 0 :(得分:1)
现在已经有一段时间了,但迟到总比没有好。
自版本1.8.17以来已发布了一些版本(在撰写本文时,当前版本为1.8.20)。
在js小提琴上,现在可以使用jQuery UI 1.8.18,see this example选择jQuery 1.7.2。 它似乎适用于这个版本,所以我们希望它在未来版本中也能这样做。