我正在尋找類似的東西,並找到了使用mousedown和mouseup事件的可能解決方案。這不是最優雅的解決方案,但它是唯一一個在Chrome和Firefox上一直爲我工作的解決方案。
我加了一些JavaScript到您的提琴: Fiddle
;
(function($) {
// DOM Ready
$(function() {
$('input').on('mousedown', function(e) {
e.stopPropagation();
$('div.parent').attr('draggable', false);
});
$(window).on('mouseup', function(e) {
$('div.parent').attr('draggable', true);
});
/**
* Added the dragstart event handler cause
* firefox wouldn't show the effects otherwise
**/
$('div.parent').on({
'dragstart': function(e) {
e.stopPropagation();
var dt = e.originalEvent.dataTransfer;
if (dt) {
dt.effectAllowed = 'move';
dt.setData('text/html', '');
}
}
});
});
}(jQuery));
有許多可拖動庫周圍 – charlietfl
這是這樣一個基本特徵,我覺得應該可以用普通的HTML和JavaScript的最少。 – zjabbari
當然...如果你想處理這樣的跨瀏覽器問題,這些問題已經被標準化並且在現有的庫 – charlietfl