Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript将CSS应用于拖放区域中的活动拖放元素_Javascript_Jquery_Html_Css - Fatal编程技术网

使用JavaScript将CSS应用于拖放区域中的活动拖放元素

使用JavaScript将CSS应用于拖放区域中的活动拖放元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有几个可拖动的节点需要在拖放后高亮显示,只有被拖放的元素需要有边框。 我放下nodeA,它就会突出显示。稍后当我放下nodeB时,nodeB应该高亮显示,nodeA不应该高亮显示 这是我写的函数: function drop(ev) { ev.preventDefault(); var data = ev.dataTransfer.getData("text"); var nodeCopy = document.getElementById(data).cloneNod

我有几个可拖动的节点需要在拖放后高亮显示,只有被拖放的元素需要有边框。
我放下nodeA,它就会突出显示。稍后当我放下nodeB时,nodeB应该高亮显示,nodeA不应该高亮显示

这是我写的函数:

function drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    var nodeCopy = document.getElementById(data).cloneNode(true);
    test++;
    nodeCopy.id =test; /* We cannot use the same ID */
    var newNodeId= nodeCopy.id;
    ev.target.appendChild(nodeCopy);
    document.getElementById(newNodeId).className += " draggeddStyle";
}

我可以使用以下方法突出显示节点:

document.getElementById(newNodeId).className += " draggeddStyle;

之后,如果我拖动另一个节点,两个节点的样式都相同。

只需修改代码示例

function drop(ev) {
    ev.preventDefault();
    $(".draggeddStyle").removeClass("draggeddStyle");/* added this line */
    var data = ev.dataTransfer.getData("text");
    var nodeCopy = document.getElementById(data).cloneNode(true);
    test++;
    nodeCopy.id =test; /* We cannot use the same ID */
    var newNodeId= nodeCopy.id;
    ev.target.appendChild(nodeCopy);
    document.getElementById(newNodeId).className += " draggeddStyle";
}

我认为这是可行的。

您尝试了什么,突出显示代码在哪里?我可以使用“document.getElementById(newNodeId).className+=“draggeddStyle;”这段代码..之后,如果我拖动另一个节点,两个节点都具有样式。因此,当您拖动第二个节点时,您需要从当前节点中删除该样式。由于我不熟悉该节点,因此无法实现该样式。。所以需要帮助:)在这个方法的开头,首先尝试删除现有元素的类名$(“.draggeddStyle”).removeClass(“draggeddStyle”);这应该是代码中方法的第一行。希望能奏效。