我有一个jQuery Selector。这个正在运作。
var table_1 = '#table_1 td';
$(table_1).keyup(function(){
//Some Array Push
});
这个不是。我的语法有问题吗?
var table_1;
$('#add_button').click(function(){
table_1 = '#table_1 td';
});
$(table_1).keyup(function(){
//Some Array Push
});
答案 0 :(得分:2)
这不起作用的原因是因为在第二个示例中keyup
事件已与undefined
绑定,因为table_1变量仅在单击后获取值。
没有必要将table_1作为var并使用它。如果你不希望它们运行,你可以绑定和取消绑定事件。
$('#add_button').click(function(){
$('#table_1 td').on('keyup',function(){
//Some Array Push
});
});
答案 1 :(得分:1)
语法很好,但逻辑有缺陷。在第二个示例中,当代码运行时(keyup
函数已绑定)table_1
为undefined
。由于jQuery选择器不选择任何元素,因此它们keyup
甚至不会被绑定到任何元素。在点击事件运行之前,您尚未定义table_1
。
答案 2 :(得分:1)
因为你在'#add_button'函数中给了table_1 var一个值。 在调用keyup事件监听器之前,你需要给它一个值。