所以,當我的頁面上有一些JavaScript函數在某些對象更改時執行,這很好。爲什麼我的Javascript無法在通過AJAX添加的對象上工作
在我的頁面上,我可以通過AJAX /文章等添加更多這些對象,這也很好。
但是,我寫的JavaScript不適用於這些新添加的對象,除非我將JavaScript粘貼到$(document).ajaxStop
中。
我已經通過移動代碼解決了這個問題,但有人可以向我解釋爲什麼這是,我不知道,而且對整個過程來說還是比較新的,但是我的谷歌搜索並沒有真正地給我帶來一個解釋(可以因爲我沒有使用正確的術語),我想知道我是否應該以最好的方式做到這一點。
我有具體的例子是:
$(".subTable").change(function(event){
$myObj = $(event.target)
var objID = $myObj.attr('name')
var objClass =$myObj.attr('class')
var objVal = $myObj.val();
$newObj = $myObj.closest('td').next('td').find('input[type = checkbox]')
var checkedval = $newObj.is(":checked");
if((objVal!= "") && (!checkedval)){
$newObj.click();
}
if(objClass=="subField"){
updateHiddenField(objID)
}
});
這將正常工作,直到我增加了新的對象,然後一旦我把他們裏面,他們只會工作:
$(document).ajaxStop(function() {
});
可以顯示代碼? –
JavaScript代碼,你說哪一個呢?要知道,比如,處理程序綁定到DOM已經存在的元素,你還可以委託事件最接近的靜態容器 –
對不起,我不知道代碼在這個例子中會有很大的幫助,因爲我認爲這個問題是非常通用的。@fatman雖然能夠猜到我的困境(我沒有意識到JavaScript中的「on」,所以現在會重構我的代碼來使用它)乾杯! – MorkPork