gpt4 book ai didi

jquery - 如何委托(delegate)焦点事件?

转载 作者:行者123 更新时间:2023-12-03 22:44:05 26 4
gpt4 key购买 nike

Possible Duplicate:
Focus and blur jQuery events not bubbling

var default_input_value = null;
jQuery('body').on('focus focusout', 'input[type="text"]', function(event){
if(event.type === 'focus'){
default_input_value = jQuery(this).val();
jQuery(this).val('');
}else if(event.type === 'focusout')
if(jQuery(this).val().length === 0)
jQuery(this).val(default_input_value);
}
);

此代码根本不响应该事件。附:重要的是会有 input[type="text"] ,因为jQuery focus也会在 checkbox 上触发在某些情况下....

最佳答案

.on() jquery文档中,有一段描述:

W3C 规定 focusblur 事件不冒泡,但 jQuery 定义了跨浏览器的 focusinfocusout 确实冒泡的事件。当使用 focusblur 附加委托(delegate)事件处理程序时,jQuery 会映射名称并将它们作为 focusinfocusout 传递> 分别。为了保持一致性和清晰性,请使用冒泡事件类型名称。

希望这会有用。

您可以尝试以下代码:

var default_input_value = null;
jQuery('body').on('focusin focusout', 'input[type="text"]', function(event){
if(event.type === 'focusin'){
default_input_value = jQuery(this).val();
jQuery(this).val('');
}else if(event.type === 'focusout'){
if(jQuery(this).val().length === 0)
jQuery(this).val(default_input_value);
}
});

关于jquery - 如何委托(delegate)焦点事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com