0
我有一個DragAndDrop類型事件發生兩個函數。當jqGrid的被初始化:爲什麼這個字符串被轉換爲JQuery?
function gridInitialized() {
var grid = $(this);
var gridId = grid[0].id;
var droppableArea = [];
//Code to populate droppableArea successfully
for(var i = 0, len = $(droppableArea).length; i < len; i++) {
//THIS IS THE LINE IN QUESTION
$(droppableArea)[i].attr("ondrop", "return handleDropHtml5(event, " + gridId + ")");
//END OF LINE IN QUESTION
}
}
,然後函數來處理降:
function handleDropHtml5(event, gridId) {
//Code to handle the drop
}
我注意到,我沒有把引號gridId
當我宣佈屬性"ondrop"
但思想它可能工作,因爲整個部分是一個字符串,gridId也是一個字符串。但是,當它到達handleDropHtml5
時,gridId將作爲與gridId
同名的JQuery表來發布。我不需要正確傳遞gridId
的解決方案,我已經有了。我很好奇爲什麼這種轉換正在發生。什麼導致JQuery表出現?
你爲什麼要使用ATTR分配事件處理程序?這是不好的做法。使用'.on()' – epascarello
@epascarello'attr'被別人的代碼遺留下來,我只需要添加網格就可以改變我們現在做事情的方式,而且不想改變太多。 –
[Most?]瀏覽器將爲每個元素的ID自動創建一個全局變量!這就是這裏發生的事情。 –