如何引用JavaScript对象实例中尚不存在的元素?
var Dynamic = function(el) {
this.$instance = $(el);
}
var dynamicInstance = new Dynamic('#dynamic');
由于#dynamic
元素是通过Ajax加载的,因此在创建dynamicInstance
时脚本看不到它,并且无法引用它。
如果它有助于解决问题,我也可以在对象内部引用该元素而不在创建它时将其传入 - 但仍然不清楚如何使对象知道该元素。
答案 0 :(得分:1)
如果你想让事物解耦,你可以接受一个回调函数作为参数,并在加载新元素并将其附加到dom后调用它
function doAjaxCall(callback) {
$.ajax({
success : function(response) {
//Logic to create the new element based on response
callback();
}
});
}
doAjaxCall(function() {
var dynamic = new Dynamic('#dynamic');
});
通过这种方式,您可以保持所有内容解耦,同时避免由ajax调用创建的竞争条件。