可能的情况是我的函数使用了过时的jquery元素。例如,当我使用close和callback时:
$("input").each(function () {
var input = $(this);
//here for example we remove input from DOM
//and insert the new one input
$.ajax(url, function(){
fun(input)
}
});
function fun(input){
//do something
input.val('newValue')
}
问题是:我怎样才能确定变量的引用是否仍然正确。如果元素已被重新处理,我怎样才能获得新输入的新引用(输入没有id和类)?
UPDATE1:我做了一些小更新。我们在函数 fun 中使用旧的输入引用。并且 newValue 将不适用于新输入coz当前输入是旧值。
答案 0 :(得分:1)
您可以通过检查jQuery对象的长度来检查元素是否存在。例如:
if($(this).length < 1)
{
// the element no longer exists in the DOM
}
但是,您可以使用jQuery的on()
函数将事件绑定到现在或将来存在的元素,也许这比您当前使用的方法更好。例如:
$('body').on('click', 'input', function(e) {
// Place your click handler here.
});
This article可能对你来说是值得一读的。