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