jQuery alert(event)在被内部函数调用时不执行任何操作

uqdfh47h  于 2022-12-03  发布在  jQuery
关注(0)|答案(3)|浏览(114)

这真的很奇怪。当调用clear函数并重置值时,然后调用过滤器更改函数。奇怪的是没有事件,但我对event != NULLevent != 'undefined'event != void 0等事件所做的任何检查都不起作用!它会像事件确实存在一样通过检查。如果我试图提醒事件...当有一个真实的的点击事件时,它工作得很好,但是当它被clear调用时,它完全杀死了这个函数,而没有做警报,也没有任何错误!

$('.clear').live("click", function() {
   page.find('.Filter').val("");
});

$('.Filter').live("keyup change", function(event) {
if(event)
    alert(event);
else
    alert('works');
});
z4bn682m

z4bn682m1#

当你点击按钮时,filter的事件没有被调用,问题是你在filter上的change事件,当你离开输入框的焦点时,change触发。如果你在那里输入,然后点击清除按钮,你会得到一个警告,比如点击清除导致事件被调用,但实际上是你的change事件被离开输入框的焦点所调用,移除变更事件。
将筛选器事件更改为
$('.Filter').live("keyup", function(event) {

8yparm6h

8yparm6h2#

设置值不触发change事件,需要手动触发,如下所示:

$('.clear').live("click", function() {
   page.find('.Filter').val("").trigger( "change" );
});

$('.Filter').live("keyup change", function(event) {
if(event)
    alert(event);
});

jsfiddle:http://jsfiddle.net/PrALa/的参数值
如果删除trigger,则不会显示警报,因为它未被触发。

l5tcr1uw

l5tcr1uw3#

在“clear”函数中添加.trigger('change')

page.find('.Filter').val("").trigger('change');

相关问题