2011-12-21 5 views
1

各Ajaxリクエストの後にトリガされるイベントajaxCompleteに似たビヘイビアを作成したいと思います。非dom要素のjQueryイベント。 (ajaxCompleteビヘイビアのような)

私はopenEtFoldingFieldsetイベントに私のページのスクリプトで

var etFoldingFieldsetOpenEvent = jQuery.Event("openEtFoldingssFieldset"); 
jQuery.fn.trigger(etFoldingFieldsetOpenEvent); 

をトリガ私のプラグインでjQueryのコアコードのため

// Attach a bunch of functions for handling common AJAX events 
jQuery.each("openEtFoldingFieldset closeEtFoldingFieldset".split(" "), function(i, o) { 
    jQuery.fn[o] = function(f) { 
     return jQuery.fn.on(o, f); 
    }; 

を取ったそのコードを使用し、私がハンドルを追加しようその

$('.log').openEtFoldingFieldset(function() { 
    alert("folding open"); 
    return true; 
}); 

のようなトリガ私はajaxCompleteのために行ったよう

$('.log').ajaxComplete(function() { 
    $(this).text('Triggered ajaxComplete handler.'); 
}) 

関数openEtFoldingFieldsetはjQueryによって正しく認識されますが、関数は呼び出されません。

私はそれを手伝ってくれることを願っています。任意のイベントハンドラについては、事前

答えて

1

おかげで、あなたは(あなたがjQの1.7を使用している場合やon()bind()を使用する必要があります自分で作成します。これは、click()keyup()などのハンドラは、jQueryソースのショートカットがbind("eventName", fn)(またはjQuery 1.7+ on("eventName", fn))になっているためです。単純にイベントを作成してjQueryオブジェクトの関数として使用することはできません。念頭に置いて

、これを試してみてください。

$('.log').bind("openEtFoldingFieldset", function() { 
    alert("folding open"); 
    return true; 
}); 
関連する問題