2012-09-17 51 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

相关问题