第一次单击“仅”时,我正在编写一个小的脚本来清除搜索表单。到目前为止,我有以下几点:

$(function() {
  if(typeof firstClick == 'undefined')
  {
    $("#search").live("focus", function() {
      $(this).val("");
      var firstClick = true;
    });
  }
});


但是,即使使用var firstClick = true定义变量;在函数中,脚本似乎每次都传递if语句。我确定我缺少一些愚蠢的东西,但是我似乎无法弄清楚。

我尝试将函数外部的var firstClick定义为一个假布尔值,然后检查是否为假,但是我似乎仍然无法使变量在函数中变为真。

最佳答案

变量仅存在于定义它们的作用域(使用var)和其后代作用域中。您的typeof调用在祖先范围内。 firstClick不存在。您应该在外部范围中将变量定义为false,然后在内部将其重新定义为true。此外,条件应该在点击处理程序中。

$(function() {
  var firstClick = false;

  $("#search").live("focus", function() {
    if (!firstClick) {
      $(this).val("");
      firstClick = true; // change the value in the outside scope
    }
  });
});

关于javascript - Javascript变量未在函数中定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8172802/

10-13 01:27