按钮(“复位”)

时间:2013-02-11 23:10:55

标签: jquery

使用Backbonejs和一个名为Marionette的插件创建了对用户进行身份验证的以下单页应用程序(由其他人创建)http://backbonedevise.herokuapp.com。我试图在没有Marionnette的情况下重写它。成功和错误回调具有这行代码

el.find('input.btn-primary').button('reset');

在登录之前,html看起来像这样

 <input type="submit" value="Login" class="btn btn-primary">

换句话说,它没有类型重置。我假设行el.find('input.btn-primary').button('reset');以某种方式重置按钮。我试着用这种方式重写它

$('input.btn-primary').button('reset');

但我收到了错误,

Object has no method button. 

你能解释一下我可能做错了什么以及我如何解决它。

成功回调。

this.model.save(this.model.attributes, {
      success: function(userSession, response) {
        el.find('form').prepend(BD.Helpers.Notifications.success("Instructions for resetting your password have been sent. Please check your email for further instructions."));
        el.find('input.btn-primary').button('reset');
      },

1 个答案:

答案 0 :(得分:3)

Marionette在其内部实现.button()方法。

.button()很可能是一个轻松管理按钮状态的钩子,但我没有深入研究它(我对Marionette一无所知)。

以下是Marionette中定义.button的实例,尽管我发现有很多地方可以引用它:

a.fn.button = function (c) {
        return this.each(function () {
            var d = a(this),
                e = d.data("button"),
                f = typeof c == "object" && c;
            e || d.data("button", e = new b(this, f)), c == "toggle" ? e.toggle() : c && e.setState(c)
        })

它归结为是要么你需要弄清楚.button()在Marionette为你做了什么,然后自己重​​新实现它,或者完全没有它。

对于它的价值,jQuery UI也有一个.button方法,所以既然你还在使用jQuery,你可以插入它。