elementReady

授权协议 未知
开发语言
所属分类 jQuery 插件、 其他jQuery插件
软件类型 开源软件
地区 不详
投 递 者 万俟均
操作系统 未知
开源组织
适用人群 未知
 软件概览

Calls a function during page load as soon as a specific element is available — even before the full DOM is loaded. Useful for applying unobtrusive JavaScript to particular page elements immediately, without waiting for the whole DOM to load in a large page.

$.elementReady(String id, Function fn)

  • id is the ID of the element to wait for
  • fn is the callback function to be called when the element appears in the DOM; in the callback, "this" refers to the newly loaded element.

While a page is loading, call a given callback function as soon as a specific element is loaded into the DOM, even before the full DOM has been loaded. Executes the function within the context of the element. This means that when the passed-in function is executed, the ‘this’ keyword points to the specific DOM element.

The function returns ‘this’, so you can chain multiple calls to elementReady(). (Not that there’s much benefit in doing that.)

One argument is passed to the callback: a reference to the jQuery function. You can name this argument $ and therefore use the $ alias even in noConflict mode.

If the element has not been found by the time the DOM is fully loaded, then the function will not be called.

Example:

Change the source of a specific image as soon as it is loaded into the DOM (before the whole DOM is loaded).

$.elementReady('powerpic', function(){
    this.src = 'powered-by-jquery.png';
});

Example:

If you want to have the jQuery object instead of the regular DOM element, use the $(this) function.

$.elementReady('header', function(){
    $(this).addClass('fancy');
});

Example:

Chain multiple calls to $.elementReady().

$.elementReady('first',  function(){ $(this).fancify(); })
.elementReady('second', function(){ $(this).fancify(); });

Example:

Use the ‘$’ alias within your callback, even in noConflict mode.

jQuery.noConflict();
jQuery.elementReady('header', function($){
    $(this).addClass('fancy');
});

Example:

Change the polling interval to 100ms. This only works if $.elementReady() has not yet been called.

// You probably don't need to do this
$.elementReady.interval_ms = 100;