3

現在、 http ://picselbocs.com/projects/goalcandy (ユーザー: demo@demo.com、パスワード: demo)にセットアップされているインタラクティブな Web アプリケーションに取り組んでいます。画像やテキストを含むアイテムを左側のサイドバーから右側のワークスペースにドラッグし、サイズ変更/編集などを行うことができます。

onblur新しく作成されたオブジェクトがフォーカスを失ったときに (少なくとも理論上は) 起動するようにイベント ハンドラーを設定しました。テストの目的で、そのハンドラーは単にalert()呼び出しを行います。問題は、ハンドラーがまったくトリガーされないことです。以下は、これらの新しいオブジェクトの作成に使用されるコードの一部です。

obj.id = 'mesh-obj-'+current_object_id;
jqObject
    .attr('id',obj.id)
    .attr('item_no', current_object_id)
    .removeClass('dragged transparent tpl-obj no-user-select')
    .addClass('mesh-obj')
    .css({
        'z-index' : current_z_index,
        'left' : obj.position.left - mesh.position.left - mesh.borderWidth,
        'top' : obj.position.top - mesh.position.top - mesh.borderWidth,
        'right' : 'auto'
    })
    .on("focusout blur", function(event){
        alert('object lost focus'); 
    })
    .appendTo('#mesh');

ぼかしイベントはフォーム入力に対してのみトリガーされますか、または HTML タグはまったくトリガーされますか? 後者の場合、私が間違っていることは何ですか?

4

2 に答える 2

6

ぼかしイベントをキャプチャするには、html 要素に tabindex を割り当てる必要があります。

html:

<div id="box1" class="box" tabindex="1">div 1</div>
<div id="box2" class="box" tabindex="2">div 2</div>

js:

$('.box').blur(function(){
   console.log(this)
})
于 2012-05-09T08:16:57.023 に答える
2

Blur イベントは、フォーム要素だけでなく使用できます。

詳細については、この記事をお読みください。

于 2012-05-09T08:15:52.563 に答える