1
이 코드를 사용하여 페이지의 일부 항목을 드래그/드롭 가능하게 만듭니다. IE/FF/Chrome에서는 모두 정상이지만 Safari에서는 문제가 발생합니다. 각 이벤트에 일부 console.log()를 넣으면, 가장 중요한 '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'이벤트가 여전히 작동하지 않습니다. –