如果声明css改变..只发一次

时间:2014-06-02 14:35:16

标签: jquery triggers

if( $('.element[value!=""]').length === 1 ) {
    $(".element").css({"width":"50px"});
}

我想这样做一次,独立于初始点击触发器。目前,每次调用if语句时,都会触发css更改。

提前非常感谢。

2 个答案:

答案 0 :(得分:3)

var fired = false;

if( ($('.element[value!=""]').length === 1) && !fired) {
    $(".element").css({"width":"50px"});
    fired = true;
}

或者从触发此操作的任何元素中删除单击处理程序。它会触发一次,删除点击处理程序,然后就不能再触发了。

答案 1 :(得分:0)

有许多可能的解决方案,但如果没有看到条件的背景,我就不可能建议最好的方法。话虽如此,根据您在此处发布的内容,我将实现一个简单的变量来保存触发器状态,然后实现if语句的条件:

var foo = false; //foo is more terse ;-)
if( $('.element[value!=""]').length === 1 && !foo) {
  $(".element").css({"width":"50px"});
  foo = true;
}
相关问题