私はブロックを使用してページをブロックし、いくつかの情報を取得しています:Blockuiはイベントを切断しています
メッセージdivには2つのボタンがあります。 OKとキャンセルをクリックします。
私は、ページの読み込みのクリックイベントを設定した場合:
$('#title-picker input[name=ok]').click(ok);
$('#title-picker input[name=cancel]').click(cancel);
をイベントが$ .blockUIを呼び出した後にトリガされていません。しかし、代わりに.liveメソッドを使用すると、意図したとおりに動作します。
$('#title-picker input[name=ok]').live('click',ok);
$('#title-picker input[name=cancel]').live('click',cancel);
私はそれを削除しを使用して、DOMにdiv要素を追加するメカニズムを想定し、これは、元のイベントハンドラをデタッチされたものでなければなりません。以前のバージョンのブロックを以前使用していましたが、これを行っていません。そして、私はドキュメンテーションで何も明らかに見ることができません。
私の推論は正しいですか?
また、.liveを使用することには欠点があります。つまり、私が上記のものに対してより良い回避策がありますか?あなたの代わりにライブ
$('#title-picker').delegate('input', 'click', function(){
if (this.name == 'ok') {
ok();
} else {
cancel();
}
//or even:
// window[this.name]();
//if needed use the scope where your functions are defined
//instead of the window element
});
のデリゲートを使用することができます
おかげ
'要素を作成し、 '.click'を使ってそれをクリックしようとすると、うまく動作しません。 – Val