とてもシンプルです。関数を起動する blur() イベント ハンドラーがあります。特定の要素をクリックしてぼかしがトリガーされたときに関数が起動しないようにします。
document.activeElement を試しましたが、クリックした要素の代わりに HTMLBodyElement が表示されます。
コード:
$j(".input_filtrare_camp").blur(
function(event) {
nr_img = this.parentNode.id.split("_")[1];
//alert(document.activeElement);
if(document.activeElement.id.indexOf("img_exact") < 0) //run only if the id of the element I clicked on doesn't contain "img_exact"
enter_input_filtrare(event.target);
});
もちろん、アラートはトラブルシューティング用です。
次のようにtechfoobarのソリューションを使用しました:
var currElem = null;
$(document).mousedown(function(e) {
currElem = e.target;
});
$j(".input_filtrare_camp").blur(
function(event) {
nr_img = this.parentNode.id.split("_")[1];
if(currElem.id.indexOf("img_exact") < 0) //run only if the id of the element I clicked on doesn't contain "img_exact"
enter_input_filtrare(event.target);
});
この問題に関する重要な情報については、PointedEars の回答をご覧ください。