Javascript drop函数内的事件处理程序不工作
我有三个背景色的div框,当我拖放另一个div框002以拖动到其中一个框时 当im从内部调用clear函数时,使用事件处理程序清除背景颜色的drop函数不会调用该函数 怎么做的Javascript drop函数内的事件处理程序不工作,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我有三个背景色的div框,当我拖放另一个div框002以拖动到其中一个框时 当im从内部调用clear函数时,使用事件处理程序清除背景颜色的drop函数不会调用该函数 怎么做的 <script> function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("text", ev.target.id); } function drop(ev)
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
clear();
}
</script>
<script>
function clear(event)
{
$(event.target).css('background-color', 'none');
$(event.target).css('opacity', '0.0');
}
</script>
功能allowDrop(ev){
ev.preventDefault();
}
功能阻力(ev){
ev.dataTransfer.setData(“文本”,ev.target.id);
}
功能下降(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData(“文本”);
清除();
}
功能清除(事件)
{
$(event.target).css('background-color','none');
$(event.target).css('opacity','0.0');
}
我建议您使用类似
在哪里调用定义的函数?另外,当您调用
clear()
时,您不会使用已定义的参数。投票以键入/不复制/对将来的其他人不有用的方式关闭。您只是没有将事件对象传递给clear
。您希望清除(ev)
,而不是清除()。事件函数并不特殊,它们总是自动获取事件参数;它们得到一个事件参数作为调用它们的结果。当您直接调用一个时(而不是由浏览器执行),您必须提供参数。(浏览器执行此操作时,浏览器将提供事件参数。)
$( function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
drop: function( event, ui ) {
ui.draggable.css("background-color", "");
}
});
});