2013-06-28 144 views
2

我想用JQuery创建一个Wizard控件。 当用户点击下一个按钮导航下一个向导页面时,我需要一个自定义事件。 我想验证当前向导页面的窗体值,如果它是无效的,事件的结果将是错误的,并且向导控件不会进入下一个向导页面。jQuery自定义事件

$.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); 

这似乎很容易,但我无法捕捉到返回值。

+0

你就不能有你的moveToNextPage逻辑直接在tabchangingHandler代替基于它的返回值? –

回答

0

那么,您正在试图在定义它之前挂钩tabchangingHandler,您正在注册一个undefined值来处理事件。您至少有两种选择:

  • 使用它之前定义的函数:

    function tabchangingHandler (event) { 
        return false; 
    } 
    
    $(this).on("tabchanging",tabchangingHandler) 
    
  • 使用匿名函数注册事件,并在未来,但同一范围内其他地方定义函数:

    $(this).on("tabchanging",function(e){ 
        tabchangingHandler(e); 
    }); 
    
    function tabchangingHandler (event) { 
        return false; 
    }