Javascript $()功能未按预期工作
此函数工作正常,但当我使用jQuery的Javascript $()功能未按预期工作,javascript,jquery,Javascript,Jquery,此函数工作正常,但当我使用jQuery的$()方法而不是文档更新它时,getElementById会给出一个错误: function drag_drop(event) { event.preventDefault(); /* Prevent undesirable default behavior while dropping */ var elem_id = event.dataTransfer.getData("text"); event.target.appendC
$()
方法而不是文档更新它时,getElementById
会给出一个错误:
function drag_drop(event) {
event.preventDefault(); /* Prevent undesirable default behavior while dropping */
var elem_id = event.dataTransfer.getData("text");
event.target.appendChild( document.getElementById(elem_id) );
$('#app_status').innerHTML = "Dropped "+elem_id+" into the "+event.target.getAttribute('id');
document.getElementById(elem_id).removeAttribute("draggable");
document.getElementById(elem_id).style.cursor = "default";
droppedIn = true;
}
更新后的函数如下所示:
index.js:22 Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
at drag_drop (index.js:22)
at HTMLDivElement.ondrop (index.html?_ijt=ifai0ih42qnjkillablo2ulcln:15)
根据
jQuery
function drag_drop(event) {
event.preventDefault(); /* Prevent undesirable default behavior while dropping */
var elem_id = event.dataTransfer.getData("text");
event.target.appendChild( $('#' + elem_id) );
$('#app_status').innerHTML = "Dropped "+elem_id+" into the "+event.target.getAttribute('id');
$('#' + elem_id).removeAttribute("draggable");
$('#' + elem_id).style.cursor = "default";
droppedIn = true;
}
$(“#app_status”).html(“droped”…)
-你应该找到一本基本的jQuery书籍或教程。似乎你在混合jQuery
和vanilla js
app_status是元素的id,其中as elem_id是包含id的变量$()
返回一个jQuery对象,而不是一个元素。你可以从物体上看,但我个人怀疑你是否应该。为什么要用一段同样长且复杂的代码来替换一段完美工作的普通JavaScript,而且还需要一个厚厚的库呢?您唯一需要的jQuery参考--->您的应用程序中是否包含了jQuery
任何版本???如果没有,则已包含
added@AhtishamShahid . 你能解释一下你想在这里做什么吗event.target.appendChild($('#'+elem_id))代码>
function drag_drop(event) {
event.preventDefault(); /* Prevent undesirable default behavior while dropping */
var elem_id = event.dataTransfer.getData("text");
event.target.appendChild( $('#' + elem_id) );
// ---- **Updated Code**
$('#app_status').html("Dropped "+elem_id+" into the "+event.target.getAttribute('id'));
$('#' + elem_id).removeAttr("draggable");
$('#' + elem_id).css({cursor: "default"});
droppedIn = true;
}