我有一個非常簡單的jQuery可拖/排序/ droppable組合進行的地方,我排序幾個div,其中每個包含一個圖像包裹在一個帶有href的錨點元素。jQuery可拖動的項目正在改變頁面的href時,被丟棄到「垃圾」
問題是,當我將一個可排序項目拖到「垃圾桶」可放置區域(以銷燬它)時,頁面有時會更改其位置並從可拖動內容進入href URL!
我已經調試了地獄的頁面,它不是我的任何代碼造成這種情況。放置事件正常發生並返回(我嘗試返回true和false)就好了。這是jQuery UI代碼中引起href被觸發的原因。
它不會每次都發生。我不是「點擊」元素 - 只是拖動。
任何人都可以提供一個建議嗎?我投擲的代碼
例子:
var trash = this._area_trash.droppable({
drop: this.eventtrashDrop,
hoverClass: 'highlight'
});
// ...
this.eventtrashDrop = function(event,ui) {
var o = ui.draggable;
if(typeof(o)=='object' && o!=null) {
if(o.parents(obj._selector_stack_area).length>0) {
var id = parseInt(o.attr('lang'));
o.remove();
obj.eventStateRemove(id);
}
}
// Page location hasn't been changed yet!
return true;
}
編輯:原來的問題仍然存在,我懷疑這是在jQuery UI的某種錯誤的。但是解決方法是更換破壞排序項與前一個div錨元素,因此它不能更改爲錨的href:
var anchor = jQuery(o).find("a");
var img = jQuery(anchor).html();
jQuery(anchor).replaceWith("<div/>").html(img);
ü可能要複製使用jsfiddle.net .. – thecodejack