使用不带Jquery的setTimeout添加类

时间:2016-02-11 23:29:08

标签: javascript jquery class

是否可以将此jquery脚本转换为非jquery脚本?

window.setTimeout(function(){$("#fullcontent").addClass("onload");}, 2100);

我想添加class" onload"到div调用" fullcontent" setTimeout为2,1s。

2 个答案:

答案 0 :(得分:2)

window.setTimeout(function() {
  document.querySelector('#fullcontent').className = "onload";
}, 2100);

示例:http://codepen.io/anon/pen/LGMKOJ

编辑:如果您不想覆盖该元素的当前类:

window.setTimeout(function() {
  var element = document.querySelector('#fullcontent');
  var className = element.className;
  element.className = className.concat(" onload");
}, 2100);

答案 1 :(得分:0)

使用.querySelector().concat()是不必要的,并且比替代方案(GEBI和+=)慢。

如果你确定#fullcontent还没有“onload”类,那么这样可以正常工作:

setTimeout(function() {
    document.getElementById("fullcontent").className += " onload";
}, 2100);

如果#fullcontent可能已经被赋予了“onload”类,那么避免重复类的更安全,更清晰的方法:

setTimeout(function() {
    var fullcontent = document.getElementById("fullcontent");

    if(fullcontent.className.indexOf("onload") === -1) {
        fullcontent.className += " onload";
    }
}, 2100);

如果#fullcontent没有任何课程,则无需附加,您只需覆盖:

setTimeout(function() {
    document.getElementById("fullcontent").className = "onload";
}, 2100);