在JS对象实例中引用Ajax加载的元素

Referencing Ajax-Loaded Element in JS Object Instance

本文关键字:Ajax 加载 元素 引用 JS 对象 实例      更新时间:2023-09-26

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

var Dynamic = function(el) {
  this.$instance = $(el);
}
var dynamicInstance = new Dynamic('#dynamic');

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

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

如果你想保持事物的解耦,你可以接受回调函数作为参数,并在新元素加载并附加到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调用创建的竞争条件。