我有两个引用相同字符串的单击函数,我试图将其存储在变量中 - 出于同样的原因。我有这段代码:
<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替换为我试图存储在变量中的内容,那么一切都按预期工作。但是当存储在变量中时 - 字符串超出了两个单击函数的范围。我不知道怎么解决这个问题......有什么想法吗?
答案 0 :(得分:0)
您的问题不在于变量的可见性,也不在于您的功能没有“识别”它。这两个函数都可以很好地查看和访问该变量。
您的问题是您在DOM元素存在之前查询它们。
将代码移至$(document).ready
回调。
如果你“将changeValidity替换为我试图存储在变量中的东西”,那么它是有效的,因为你(可能)将查询移动到事件处理程序中,此时元素将存在。