html keyup事件,jquery keyup事件为什么不执行?
先指出你的一個(gè)錯(cuò)誤點(diǎn)
$('#skillKey').on('click', 'tr', function () {
$(this).css('color','red');
$(this).keyup(function(){
alert(123)
});
});
你這樣綁定事件,結(jié)果是點(diǎn)擊一次tr綁定一次,點(diǎn)了多少次就綁定了多少次,這個(gè)例子還是不明顯,你在tr里放置一個(gè)input,然后編寫(xiě)如下代碼,看看效果如何
$('#skillKey').on('click', 'input', function () {
$(this).css('color','red');
$(this).blur(function(){
alert(123)
});
});
再給個(gè)建議
需要使用的元素可以先緩存,不要濫用$,易讀的前提下可以使用鏈?zhǔn)?/p>
$('#skillKey').on('click', 'tr', function () {
var $this = $(this);
$this
.css('color', 'red')
.keyup(function () {
alert(123)
});
});
再來(lái)解答你的問(wèn)題
不觸發(fā)keyup事件,是因?yàn)殒I盤(pán)事件需要元素獲取焦點(diǎn),tr獲取不到焦點(diǎn)當(dāng)然觸發(fā)不了。再者如果你要點(diǎn)擊修改文本內(nèi)容不應(yīng)該是彈出一個(gè)input么?
$(this).keyup(alert(123)); 你把a(bǔ)lert的前后內(nèi)容都去掉不就是alert(123),函數(shù)加上”()“就會(huì)執(zhí)行的
補(bǔ)充
你所說(shuō)的效果不可控性太強(qiáng),輸入不可見(jiàn)也就不支持復(fù)制粘貼了。我推薦下面這種方式,你看下適不適用你的情景
HTML
姓名年齡
小于12老李20JS
$('#skillKey')
.on('click', 'tbody td', function () {
var $this = $(this);
var text = $this.text();
var $input = $('');
$input.on('blur', function () {
$this.text($input.val());
$input = null;
});
$this.html($input);
$input.focus().val(text);
})
.on('click', 'input', function (e) {
e.stopPropagation();
});
效果
函數(shù)執(zhí)行問(wèn)題
函數(shù)后面加上“()”就會(huì)執(zhí)行,例如
$(this).keyup(alert(123));
這里執(zhí)行keyup函數(shù),先要解析參數(shù),發(fā)現(xiàn)參數(shù)是alert(123),肯定立馬先彈出123,然后繼續(xù)往下解析。例如
function fn(){
alert(4);
}
fn(alert(3));
別把函數(shù)的引用和執(zhí)行弄混了,好好理解下。
總結(jié)
以上是生活随笔為你收集整理的html keyup事件,jquery keyup事件为什么不执行?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql+ubunt+绿色安装_Mys
- 下一篇: 从天和核心舱看神十四绝美画面:100秒看