jQuery addClass()prepend()只运行一次

时间:2015-01-28 02:53:04

标签: jquery

我有一个简单的函数,不幸的是每次将新行添加到同一页面上的表时都会调用它。

我想使用jQuery只运行一次。我看着" One"但无法找到合适的触发器将其绑定到例如点击,滚动

$(".fieldname").addclass("classname").prepend("<span class='icon'></span>");

3 个答案:

答案 0 :(得分:2)

在某处设置全局变量:

var run = false;

然后在调用该方法的条件内部运行它并将其设置为true:

if (!run) {
  $(".fieldname").addclass("classname").prepend("<span class='icon'></span>");

  run = true;
}

最好,这将在myApp.run之类的名称空间后面,而不是直接在窗口对象中。

...

编辑您的特定情况(请注意,这是非常糟糕的代码)...

if (!window.run) {
  $(".fieldname").addclass("classname").prepend("<span class='icon'></span>");

  window.run = true;
}

答案 1 :(得分:2)

检查是否hasClass

var elem = $(".fieldname"),
    className = "class";
if(!elem.hasClass(className)){
    elem.addClass(className).prepend("<span class='icon'></span>");
}

答案 2 :(得分:2)

如果有问题的元素没有我添加的类,我只通过应用函数找到了一种方法。我是使用jQuery .not() - explained best here函数完成的,这非常酷。

$(".fieldname:not(.classname)").addclass("classname").prepend("<span class='icon'></span>");