我遇到的情况是,当用户点击或键入enter
时,我想切换一些内容。
不幸的是,我正在开发一个庞大的网站,该网站在某个地方收听enter
密钥,并在收到{{1> 某些项时触发.click()
keyup。我找不到它,我不想(或能够)改变它,如果我能找到它,但它的行为就像这样:
enter
结果是,当用户键入$("#item").on("keyup", function(event){
if(event.keyCode == 13){$('#item').click();}
});
并撤消自身时,我的“切换”脚本会运行两次。
enter
当有人点击进入时,有没有办法防止$('body').on('click keyup', '#item', function(e) {
console.log("-----------------");
if(e.type=="click") {
console.log("Event Type: " + e.type);
//toggle something
} else {
console.log("Event Type: " + e.type+ ", keyCode: " + e.keyCode);
//toggle something
}
});
和keyup
被解雇?显而易见的答案是删除脚本的click
部分,然而,这对我不起作用,因为[enter] - > [click]脚本不是普遍适用的,所以我需要keyup
键来处理不适用的元素。
答案 0 :(得分:1)
您可以使用事件命名空间。
IE:
$(el).on('keyup:hamza', function(){
//Detect if it was called by an element with event namespaced and do different code
})
您也可以使用off('keyup:hamza')仅删除您的活动..