0

如何从 JavaScript 对象实例中引用尚不存在的元素?

var Dynamic = function(el) {

  this.$instance = $(el);
}

var dynamicInstance = new Dynamic('#dynamic');

由于#dynamic元素是通过 Ajax 加载的,因此脚本在创建时看不到它dynamicInstance,也无法引用它。

如果它有助于解决问题,我还可以从对象内部引用该元素,而无需在创建时将其传入——但仍不清楚如何让对象知道该元素。

4

1 回答 1

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 调用产生的竞争条件。

于 2013-09-03T18:20:44.910 回答