【发布时间】:2014-02-12 11:40:27
【问题描述】:
所以,当某些对象发生变化时,我的页面上有一些 JavaScript 函数可以执行,效果很好。
在我的页面上,我可以通过 AJAX/post 等添加更多这些对象,这也可以正常工作。
但是,我编写的 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”,所以现在将重构我的代码以使用它)干杯!
标签: javascript jquery ajax post