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值来处理事件。你至少有两个选择:

  • 在使用之前定义函数:

    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 回答