javascript最佳实践和文档准备就绪

时间:2011-12-02 16:49:21

标签: javascript jquery javascript-events jquery-selectors

我正在开发一个Web应用程序,在开发阶段我正在添加一些脚本。

我注意到脚本数量很多,可能会增加。

我通常将所有内容都包含在document.ready中,并在页面加载时执行。

只有在DOM中存在类时,才会有一个特定的脚本为元素设置特定的样式。

只有当特定元素在DOM树中时,是否有办法运行脚本?

3 个答案:

答案 0 :(得分:4)

您可以加载脚本(通过AJAX),或者在需要时运行代码,方法是检查jQuery对象的长度以查看元素是否存在。

if($(selector).length > 0){ // if element is in DOM
    $.getScript('file.js'); // load file
    // or just run some code
    alert('element is here');
}

或者您可以查看yepnope.js

yepnope({
    test: $(selector).length,
    yep: 'file.js',
    callback: function(url, result, key){
      if(result){
        alert('element is here');
      }
    }
});

答案 1 :(得分:2)

要检查jQuery中是否存在元素,可以使用$(#myElement").length;。要将此与您基于此的添加CSS的问题相结合,请使用:

if ($("#myelement").length > 0) {
    // element exists
    $(this).addClass("exists");
    $("#otherElement").css({
        "display": "block",
        "background-color": "#C00"
    });
}

答案 2 :(得分:2)

是的,我认为你可以在你的文件中做一些事情:

if ($('#yourElement').length){
     $.getScript('ajax/yourjs.js', function(){
         console.log('Load was performed.');
     });
}