这就是我想要做的。我希望每次选择元素更改时都触发一个事件。我有一个多行选择,当我进行更改(单击元素)时,它不会更改,直到选择框失去焦点。因此,每次单击选择框时,我都会尝试强制模糊。这样,如果它改变,它将触发改变的事件。如果它没有改变,什么都不会发生。
我该怎么做?我是否正确地接近这个? Jquery的答案也没问题。
答案 0 :(得分:6)
除了Ender之外,完整的代码可能是这样的。
$('#mySelectBox').change(function() {
$('#thingToBlur').blur();
})
答案 1 :(得分:3)
使用jQuery执行:
$('#mySelectBox').change(function() {
//do things here
});
根据http://api.jquery.com/change/的文档,当用户做出选择时会立即触发事件。
查看此演示以验证其是否有效:http://jsfiddle.net/AHM8j/
答案 2 :(得分:1)
您可以将onclick处理程序附加到select和各个选项。基本上是onclick="this.blur();"
。我总是发现<select>
元素上的点击事件很痛苦,因为没有任何事情发生在你期望的那一点。
答案 3 :(得分:1)
好的,这是正在发生的事情。我包含了-vsdoc版本的JQuery而不是实际的JQuery库。这也修复了我使用某些插件(例如blockUI)时遇到的一些问题。
答案 4 :(得分:1)
这将找到具有焦点的元素并触发模糊事件。
function blur(){
document.querySelectorAll('input,textarea').forEach(function(element){
if(element === document.activeElement) {
return element.blur();
}
});
}