关于jQuery事件的问题

时间:2011-08-24 12:29:18

标签: javascript jquery javascript-events

如果我有以下代码;

if (x == "0")
{
     $("input:checkbox").parent().mouseover(function () {
     //Some code
     }
}

我的问题是代码是否会在每次鼠标悬停时执行或者首先检查x ==“0”条件然后触发?

换句话说,$("input:checkbox").parent().mouseover()代码是类似于bind()或live()函数(每次在该事件上被触发)获得的代码,并且“x”的封闭条件获胜没关系?

我们有什么方法可以将事件与“x”条件联系起来,例如只有当x为真时限制它的范围?

我不确定我的问题是否真的有效。但如果你能澄清一下,那将是非常好的。

3 个答案:

答案 0 :(得分:2)

  

我的问题是代码是否会在每次鼠标悬停时执行或者它将会执行   首先检查x ==“0”条件,然后开火?

如果在编写此代码时x ==“0”,它将在每次鼠标悬停时执行。

如果您只想在x ==“0”时执行一段代码,请尝试

 var x = "0"; // or any other value.
 $("input:checkbox").parent().mouseover(function () {
   if(x == "0") {
     // code goes here
   }
 }

答案 1 :(得分:2)

第一次x具有值= 0时将附加事件。然后它将在每个onMousehover上执行,如果x不同于0,则可以分离事件。

if (x == "0")
{
    $("input:checkbox").parent().mouseover(function () {
    //Some code
} else {
    $("input:checkbox").parent().unbind('mouseover');
}

答案 2 :(得分:1)

一旦附加了鼠标悬停事件,它将触发而不管X.您可以通过检查回调函数中的X来获得您正在寻找的效果。

 var x = 0;

 $("input:checkbox").parent().mouseover(function () {
  if(x != 0) { return; }
  // some code
 }