1
我使用此代碼在頁面上拖動/放置一些項目。 在IE/FF/Chrome上一切正常,但在Safari上我遇到了一些麻煩。 在每個事件上添加一些console.log(),我發現所有事件都被safari識別,除了最重要的「drop」事件。addEventListener'drop'在Safari上不起作用
任何人都可以找到解決方案,使此代碼也在Safari上工作嗎?
prepareDrag:function() {
if (Modernizr.draganddrop) {
var dragged = $SHS.j('a');
$SHS.j.each(dragged, function (index, value) {
value.addEventListener('dragstart', function (e) {
try {
var img = $SHS.j(this).find('img');
if ((img[0].nodeName).toUpperCase() == 'IMG') {
var commandData = img[0].src + '|' + value.href;
//Do Stuff
} else throw 'Non valido';
} catch (err) {
//Errore
}
}, false);
value.addEventListener('dragend', function (e) {
//Do Stuff
}, false);
});
}
},
prepareDrop:function() {
if (Modernizr.draganddrop) {
var dropper = document.getElementById('dropArea');
dropper.addEventListener('dragenter', function (e) {
$SHS.j("#dropArea").addClass('drop-over');
}, false);
dropper.addEventListener('drop', function (e) {
e.stopPropagation();
e.preventDefault();
$SHS.j("#dropArea").removeClass('drop-over');
//Do stuff
}, false);
dropper.addEventListener('dragover', function (e) {
e.stopPropagation();
if (e.preventDefault) {
e.preventDefault();
}
$SHS.j("#dropArea").addClass('drop-over');
}, false);
dropper.addEventListener('dragleave', function (e) {
$SHS.j("#dropArea").removeClass('drop-over');
}, false);
} else {
}
},
我剛剛嘗試過,但'drop'事件仍然不起作用 –