更改事件不起作用,但Onkeyup按预期工作

时间:2015-09-29 19:58:41

标签: javascript jquery

我有这段代码

opam

这很好用。每次按钮释放时,我都会记录var tm; $('#category #product_list .ajax_block_product').on('mouseover',function(){ var that = $(this); tm = setTimeout(function(){ that.find('.sl').show(); that.find('.product_img_link img').hide(); that.addClass('hovered'); }, 500); }); $('#category #product_list .ajax_block_product').on('mouseleave',function(){ clearTimeout(tm); that.find('.sl').hide(); that.find('.product_img_link img').show(); that.removeClass('hovered'); }); 。但是,当我将此事件更改为$(".steps").on("keyup", "input", function() { console.log('test'); } ); 时,它就不会触发。

test

任何想法为什么?

2 个答案:

答案 0 :(得分:3)

oninput(现代浏览器,IE9 +):在输入中更改文本时触发(可以看到文本框中的更改)。

onchange:会在文字发生变化且元素失去焦点时触发。

onpropertychange(IE小于9):类似于oninput(似乎没有捕获所有内容,删除并不总是触发)

这是我用来立即捕获事件(捕获输入,属性更改和粘贴):

$('input').on('input propertychange paste', function (e) {

});

答案 1 :(得分:1)

当输入已更改且失去焦点时,将触发更改事件。或者在元素上调用.change()时。