【问题标题】:jquery mobile - pageinit event no triggered when using mobile.changePagejquery mobile - 使用mobile.changePage时没有触发pageinit事件
【发布时间】:2013-09-07 09:50:32
【问题描述】:

我有以下代码用于处理按钮的单击事件:

$(document).on("click", '.submit_review_button', function(event, ui) {


    var place = $.data(this, "object");
    var ttext = $("#review_text").val();
    var review = new Object();
    review.business_place_id = place._id;
    review.review = ttext;
    review.user_id = user._id;
    // var review = {business_place_id:place.id, review: ttext, user_id: user.id}

    $.ajax({
        url: site_url + '/reviews/',
        type:'POST',
        data: review,
        success: function(data) {
            $.mobile.changePage("show_reviews_page", {
                    allowSamePageTransition: true,
                    transition: 'none',
                    reloadPage: true    
                });
            // initShowReviewsPage();


       },
       error:function(data) {
        alert(1);
    }

});

});

我在文档中也有此代码:

  $("#show_reviews_page").on('pageinit', function() {
        initShowReviewsPage();
    });

我知道 pageInit 绑定有效,因为如果我使用它去#show_reviews_page 的话。

但是当点击 .submit_review_button 按钮时,点击事件会触发,页面会发生变化,但 init 不会触发并且页面无效。

知道为什么它不起作用吗?

【问题讨论】:

  • 使用pageshowpagebeforeshow
  • 你为什么要打开第二个问题?无论如何,正如 Omar 建议的那样,您应该使用这两个事件。 Pageinit 在页面初始化时只触发一次。您可以通过编程方式触发它

标签: javascript jquery jquery-mobile


【解决方案1】:

"pageinit" 事件仅在页面第一次加载到 DOM 时触发一次。 如果您想在每次访问页面时触发一个函数,请使用“pageshow”或“pagebeforeshow”事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多