Javascript 单击按钮刷新页面div

Javascript 单击按钮刷新页面div,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我正在使用jquery mobile构建一个phonegap应用程序。我有一个页面div,为10个不同的步骤中的每一个显示相似的数据。我的数据正在从JSON读取。我可以通过单击一个按钮来正确地设置步骤,并使用pagebefore show(如果我离开页面然后返回页面)来显示此信息。但我希望当我单击按钮时,它能用新信息刷新(重新加载)当前页面。我似乎无法让它工作。我尝试了location.reload()和其他一些方法,但没有成功。有人能帮一个新手吗 Javascript: var current

我正在使用jquery mobile构建一个phonegap应用程序。我有一个页面div,为10个不同的步骤中的每一个显示相似的数据。我的数据正在从JSON读取。我可以通过单击一个按钮来正确地设置步骤,并使用pagebefore show(如果我离开页面然后返回页面)来显示此信息。但我希望当我单击按钮时,它能用新信息刷新(重新加载)当前页面。我似乎无法让它工作。我尝试了
location.reload()
和其他一些方法,但没有成功。有人能帮一个新手吗

Javascript:

var currentStep = 0;  

$.getJSON("rubric.json", function(data) {
    jsonRubric = data;

});

$("#nextStep").on('click', function() {
if (currentStep <9){
currentStep += 1;
location.reload(true);}
});

function setRubricInfo() {
    $('#rubricTitle').html(jsonRubric.rubric[currentStep].title);
    $('#criteria').html(jsonRubric.rubric[currentStep].criteria);
     $('#meets').html(jsonRubric.rubric[currentStep].meets);
     $('#dnmeet').html(jsonRubric.rubric[currentStep].dnmeet);
     $('#exceeds').html(jsonRubric.rubric[currentStep].exceeds);
}
$("#stepOneRubric").on("pagebeforeshow", function(){
setRubricInfo();
});

jQuery的哪个版本
.live()
已弃用

“从jQuery 1.7开始,.live()方法已被弃用。 使用.on()附加事件处理程序。 较旧版本的jQuery用户应优先使用.delegate(),而不是.live()

改用
.on()

$("#stepOneRubic").on('click', '#nextStep', function() {
    if (currentStep <9){
        currentStep += 1;}
    location.reload();
});
$(“#stepOneRubic”)。在('click','#nextStep',function()上{
如果(currentStep在将新项目添加到
[data role=page]
后使用
.trigger('create')
。这将在使用
.html()
时重新增强代码的标记

无需
刷新
或重新加载页面。但是,如果希望给人页面正在刷新的感觉,可以使用
$.mobile.changePage()
和选项
allowSamePageTransition:true
重新加载同一页面

var currentStep=0;
$(“#下一步”)。在('单击',函数()上{

如果(currentStep什么是
currentStep
,它的值从何处获取?这是一个黑客攻击,但location.href=location.href正在强制重新加载(而不是location.reload()),至少在chrome上,也许是这样helps@PitaJ这没有帮助。如果您愿意,请提供新方法和链接。helpcurrentStep只是代码开头标记的一个变量。默认设置为0,并指向JSON数组中的一个项。这应该可以工作。仅用于测试,请尝试使用
location.reload(true);
。另外,使用
.on()
函数代替
.live()
谢谢,我应该知道这一点,我以前用过它。但它并不能解决我的问题。它只是挂起并给我一个永远的旋转动画。这不是
直播的等价物。这是正常的事件处理。你需要使用事件委派,比如
$(“#容器_id”)。在(“单击”,“元素类”,函数(){})
currentStep
是如何在这里递增的,它在
if
语句的内部
var currentStep
if
@c的外部--misura检查我的答案中的例子。但是它在
if
语句的内部递增一步,直到它的值为9@c--misura@Omar耶S!这正是我想要的,它工作得很好。谢谢!我的参数设置是正确的,否则反复单击按钮可能会使var超过数组中的项数,从而导致问题。
$("#stepOneRubic").on('click', '#nextStep', function() {
    if (currentStep <9){
        currentStep += 1;}
    location.reload();
});
var currentStep = 0;
$("#nextStep").on('click', function() {
 if (currentStep <9){
  currentStep++;
  setRubricInfo();
 }
 $('[data-role=page]').trigger('create');
});