我有一个简单的函数,不幸的是每次将新行添加到同一页面上的表时都会调用它。
我想使用jQuery只运行一次。我看着" One"但无法找到合适的触发器将其绑定到例如点击,滚动
$(".fieldname").addclass("classname").prepend("<span class='icon'></span>");
答案 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>");