2

JQuery を使用してウィザード コントロールを作成したいと考えています。ユーザーが次のボタンをクリックして次のウィザード ページに移動するときに、カスタム イベントが必要です。現在のウィザード ページのフォーム値を検証したいのですが、それが無効な場合、イベントの結果は false になり、ウィザード コントロールは次のウィザード ページに進みません。

$.fn.wizard = function (options) {
    init(this);

    var isValid = false;

    $(this).on("tabchanging", tabchangingHandler);

    function tabchangingHandler(event) {

                    //validate controls
        return false;
    }
} 

//in the wizard page function I fire the tab changing event and I would like to catch       //the result value but how?

$(e.target).parents(".wizard-frame").trigger('tabchanging', e);

とても簡単そうに見えますが、戻り値をキャッチできません。

4

1 に答える 1

0

さて、tabchangingHandler定義する前にフックしようとしていますundefined。イベントを処理する値を登録しています。少なくとも 2 つのオプションがあります。

  • 使用する前に関数を定義します。

    function tabchangingHandler (event) {
        return false;
    }
    
    $(this).on("tabchanging",tabchangingHandler)
    
  • 匿名関数を使用してイベントを登録し、関数を将来別の場所で定義しますが、スコープは同じです。

    $(this).on("tabchanging",function(e){
        tabchangingHandler(e);
    });
    
    function tabchangingHandler (event) {
        return false;
    }
    
于 2013-06-28T17:50:20.207 に答える