识别在单击函数外部创建的var

时间:2014-08-12 20:26:44

标签: jquery variables click

我有两个引用相同字符串的单击函数,我试图将其存储在变量中 - 出于同样的原因。我有这段代码:

<script>
  var changeValidity = $(this).parent().find('.checkbox-button').toggleClass('input-valid input-invalid');

  $(document).on('click','.checkbox-button.input-invalid',function() {
     changeValidity;
  });

  $(document).on('click','.checkbox-button.input-valid',function() {
    var selectedItems = $(this).parent().find('.input-valid.checked').length;

    if (selectedItems < 1){
      changeValidity;
    }
  });
</script>

如果我将changeValidity替换为我试图存储在变量中的内容,那么一切都按预期工作。但是当存储在变量中时 - 字符串超出了两个单击函数的范围。我不知道怎么解决这个问题......有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的问题不在于变量的可见性,也不在于您的功能没有“识别”它。这两个函数都可以很好地查看和访问该变量。

您的问题是您在DOM元素存在之前查询它们。

将代码移至$(document).ready回调。

如果你“将changeValidity替换为我试图存储在变量中的东西”,那么它是有效的,因为你(可能)将查询移动到事件处理程序中,此时元素将存在。