Jquery拖放不在Firefox中工作,在chrome和safari中工作正常

Jquery拖放不在Firefox和IE中工作,但在chrome和safari中工作正常。

这是我的代码:

$(".drag").draggable({ helper: "clone", }); $(".drop").droppable({ drop: function (ev, ui) { if ($(ev.toElement).hasClass("drop") == true) { var widgetId = $(ui.draggable).attr("id"); $(ev.toElement).attr("id", "dash_" + widgetId); $(ev.toElement).html($(ui.draggable).html()); } } }); 

代码已上传至http://www.skmcap63.hostoi.com/box-dashboard/

我需要从侧边栏拖动项目并将其放入框中。 请帮忙。 提前致谢。

试试这个它对你有用

 $(".drop").droppable({ drop: function (ev, ui) { if ($(ev.target).hasClass("drop") == true) { var widgetId = $(ui.draggable).attr("id"); $(ev.target).attr("id", "dash_" + widgetId); $(ev.target).html($(ui.draggable).html()); } } }); 

没有event.toElement在firefox中,它是event.relatedTarget

relatedTarget属性用于查找事件中涉及的其他元素(如果有)。 像鼠标hover这样的事件是围绕某个目标定向的,但也涉及辅助目标,例如当鼠标hover事件为主目标触发时退出的目标。

由于不同的浏览器具有不同的属性,因此在使用之前应检查哪个浏览器存在:

 var el = ev.toElement? ev.toElement: ev.relatedTarget; 

在IE8和Firefox中查看event.toElement? 了解更多信息。

这段代码将解决您的问题,请注意我没有在IE中测试这个,因为我是一个Unixmen

 $(function() { $(".drag").draggable({ helper: "clone", }); $(".drop").droppable({ drop: function(ev, ui) { var el = ev.toElement? ev.toElement: ev.target; if ($(el).hasClass("drop") == true) { var widgetId = $(ui.draggable).attr("id"); $(el).attr("id", "dash_" + widgetId); $(el).html($(ui.draggable).html()); } } }); });