jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery-mobile – jQueryMobile:未捕获的TypeError:无法调用未定义的方法’_trigger’大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用带有BACkbone.js的jQuery Mobile.当我加载主页时,我收到以下错误
Uncaught TypeError: CAnnot call method '_trigger' of undefined

这是我加载主页所做的.
在routes.js中:

routes:{
    '':'home',}
home:function () {
    new HomeView();
    this.changePage(new HomeContentView());
},changePage:function (pagE) {
    $(page.el).attr('data-role','page');
    console.log($(page.el));
    page.render();
    $('body').append($(page.el));
    var transition = $.mobile.defaultPageTransition;
    if (this.firstPagE) {
        transition = 'none';
        this.firstPage = false;
    }
    $.mobile.changePage($(page.el),{ChangeHash:false,transition: transition});
}

在view.js中

window.HomeView = BACkbone.View.extend({
template : Handlebars.compile($('#home').html()),render : function (eventName) {
    this.$el.html(this.template());
    this.header = new HeaderElement();
    this.$el.find('div.header_element').append(this.header.$el);
    this.footer = new FooterElement();
    this.$el.find('div.footer_element').append(this.footer.$el);
    return this;
}
});


window.HomeContentView = BACkbone.View.extend({
    initialize: function(options) {
        this.collection = new Fan();
        this.template = Handlebars.compile(tpl.get('elements/home'));
        //~ console.log(tpl.get('home'));
        this.collection.on("reset",this.render,this);
        this.init = true;

        if (this.init) {
            upLimit = 1;
            this.collection.index();
            this.init = false;
        }
    },el: '#home_content_view',render : function (eventName) {
        var self = this;
        var js = (self.collection.toJSON())[0];
        console.log(js);

        $('#home_content_view').html(self.template(js));
        $('#home_content_view').trigger("create");
    }
});

在home.html

<div data-role="content">
hi
</div>

错误堆栈跟踪:

Uncaught TypeError: CAnnot call method '_trigger' of undefined jquery.mobile-1.1.1.js:2843
transitionPages jquery.mobile-1.1.1.js:2843
$.mobile.changePage jquery.mobile-1.1.1.js:3465
BACkbone.Router.extend.changePage routes.js:153
BACkbone.Router.extend.home routes.js:37
f.extend.route BACkbone-min.js:27
f.extend.loadUrl BACkbone-min.js:32
b@L_393_2@me.b.any underscore-min.js:14
f.extend.loadUrl BACkbone-min.js:32
f.extend.start BACkbone-min.js:31
(anonymous function) routes.js:162
$.ajax.success view.js:29
v.CallBACks.l jquery-1.8.3.min.js:2
v.CallBACks.c.fireWith jquery-1.8.3.min.js:2
T jquery-1.8.3.min.js:2
v.support.ajax.v.ajaxTransport.send.r jquery-1.8.3.min.js:2

其他页面正确呈现.只有主页给我带来麻烦.
我哪里出错了?我该如何解决这个问题?

解决方法

我认为这个错误可能是因为jQuery Mobile需要一个元素来转换为changePage.这是一个黑客攻击,但是在index.html中将data-role属性设置为“page”的空div应解决它:
<body>
    <!-- jQM seems to need a page to exist in the document before it transitions to the first dynamically generated one -->
    <div data-role="page"></div>
</body>

大佬总结

以上是大佬教程为你收集整理的jquery-mobile – jQueryMobile:未捕获的TypeError:无法调用未定义的方法’_trigger’全部内容,希望文章能够帮你解决jquery-mobile – jQueryMobile:未捕获的TypeError:无法调用未定义的方法’_trigger’所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。