2012-09-17 188 views
0

就像標題所說:Click事件只刷新後觸發

我有幾個按鈕,jQuery腳本頁面如下:

$(document).bind('mobileinit', function(){ 
    $.mobile.loader.prototype.options.text = "loading"; 
    $.mobile.loader.prototype.options.textVisible = false; 
    $.mobile.loader.prototype.options.theme = "a"; 
    $.mobile.loader.prototype.options.html = ""; 
}); 

$(document).bind('pagecreate', function(event){ 
// New model form submittion 

    $('#new-model-submit').click(function(){ 
      // do 
    }); 

    // Compatibility 

    // Switch brands 
    $('#brands').change(function(){ 
     // do something 
    }); 

    // Add model to compatibility 
    $('input[type=checkbox]').live("change", function(){ 
     // do something 

    }); 

    // Specificaties 
    $("#add-product-spec").click(function(){ 
     // do something 
    }); 

    $("#save-product-specs").click(function(){ 
     // Do something 
    }); 

    // Foto's 
    $("#add-product-foto").click(function(){ 
     // Do something 
    }); 

    $("#save-product-fotos").click(function(){ 
     // Do something 
    }); 

}); 

的問題是,這些事件不會被觸發時,該頁面首先被加載。但是,當我按F5並刷新頁面時,按鈕確實起作用。爲什麼是這樣?有沒有人有辦法解決嗎?

回答

3

JQuery Mobile的工作方式稍有不同。如果一個鏈接指向同一個域的頁面,JQuery移動將攔截該事件,然後創建一個ajax請求,然後將其插入到DOM中。解決這個問題的一種方法是使用live來進行點擊事件。即

// Specificaties 
$("#add-product-spec").live("click", function(){ 
// do something 
}); 

這將告訴瀏覽器以保持眼睛的任何東西的「click」事件,無論當它被插入到DOM的「#附加產品規格」選擇相匹配。

編輯

你可以嘗試的另一件事是使用PageShow代替PageCreate。如果我沒有記錯,jQuery mobile的PageCreate事件只會在您第一次加載頁面時觸發。

+0

將明確檢查出來 – sn0ep