访问在window.load

时间:2016-06-13 09:20:47

标签: jquery pageload

如何访问在window.load&之后加载的HTML页面中的元素document.ready函数?

我无法使用jQuery文档就绪或加载来访问它们。

5 个答案:

答案 0 :(得分:1)

既然你已经提到过jQuery,我会给你一个特定于jQuery的答案:

$("body").on("click",".selector-late",function(e){
    //Your Code Here.
    //e.delegateTarget returns the body element.
    //e.currentTarget returns .selector-late element.
    //e.target returns the element which was clicked. (could be a child of .selector-late too)
});

说明:

  1. 我们将事件监听器附加到已存在的元素上。 (body在这种情况下,它可以是元素的任何父级。)
  2. click是我附上的事件。您可以根据要求进行更改。
  3. .selector-late将是您的元素的选择器,可能会在将来的任何时间加载。
  4. 签名

    $(staticAncestors).on(eventName, dynamicChild, function() {});
    

    此方法在detail here.

    中说明

答案 1 :(得分:0)

如果您需要访问它们或者它们到达时可以使用任何事件,请使用该事件。

如果没有可以挂钩的事件,您可以等待它们使用定时器循环显示(例如,轮询它们):

(function() {
    function doSomething() {
        var elements = $("selector-for-the-elements");
        if (!elements.length) {
            // Not there yet, keep waiting
            setTimeout(doSomething, 100); // 100ms = 1/10th second, adjust as needed
            return;
        }
        // We have them, use them
    }
    $(doSomething); // Make the first call happen on document ready
})();

答案 2 :(得分:0)

假设您使用触发器来访问元素,以下内容将起作用:

$("<trigger>").on("click", function() {
  <access loaded element>
});

答案 3 :(得分:0)

使用event delegation

$(".parent_class").on("click",".the_element_you_need",function() {
 //code here
});

答案 4 :(得分:0)

$(document).on("click",".your_element",function() {
 //do something
});