就像标题所说:
我有一个带有几个按钮和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 并刷新页面按钮确实有效。为什么是这样?有没有人有解决方案?
答案 0 :(得分:3)
JQuery Mobile的工作方式略有不同。如果链接将您引导到同一域上的页面,JQuery mobile将拦截该事件,而是发出ajax请求,然后将其插入DOM。解决此问题的一种方法是使用live
进行点击活动。即。
// Specificaties
$("#add-product-spec").live("click", function(){
// do something
});
这将告诉浏览器留意任何与“#add-product-spec”选择器匹配的“click”事件,无论它何时被插入DOM。
修改的
您可以尝试的另一件事是使用PageShow
代替PageCreate
。如果我没记错的话,JQuery mobile的PageCreate
事件只会在您第一次加载页面时触发。