textarea
ぼかしイベントが添付されている があります。ユーザーがページ上の特定の部分をクリックした場合にぼかしイベントを実行したくありませんspan.dontClick
。ただし、ユーザーが 以外のものspan.dontClick
をクリックすると、ぼかしイベントが実行されます。これを行う方法を見つけましたが、見栄えが悪く、非常にハッキーに感じます。より良い解決策があると思います。これが私が思いついたものです:
if (event.type === 'focusout') {
if (
typeof event.originalEvent !== 'undefined' &&
typeof event.originalEvent.currentTarget !== 'undefined' &&
typeof event.originalEvent.currentTarget.activeElement !== 'undefined' &&
typeof event.originalEvent.currentTarget.activeElement.className !== 'undefined' &&
event.originalEvent.currentTarget.activeElement.className === 'dontClick'
) {
// abort the code for the blur event (in effect, do nothing)
}
else {
// run code for when a user blurs by not clicking on span
}
event
オブジェクトが jQuery イベント ハンドラーからのものであることに注意してください。event
ネイティブオブジェクトと同じか、異なるかはわかりません。
また、これはほとんどのブラウザーでサイレントに失敗しますが、各オブジェクトの「未定義」状態を最後まで指定しないと、IE でデバッグウィンドウが表示されることに注意してください...
誰かがよりエレガントなソリューションを持っている場合は、それを見ていただければ幸いです。ありがとう!