Javascript JQuery移动按钮样式在单击时更改
我正在用jquery mobile和html5开发一个移动应用程序。应用程序的一部分是事件日历,通过单击“下一步”和“上一步”按钮,该日历应该可以遍历月份 迭代功能可以正常工作,但是当月份发生变化时,按钮的内容和功能应该更新,以显示新月份的上一个和下一个按钮Javascript JQuery移动按钮样式在单击时更改,javascript,jquery,events,mobile,onclick,Javascript,Jquery,Events,Mobile,Onclick,我正在用jquery mobile和html5开发一个移动应用程序。应用程序的一部分是事件日历,通过单击“下一步”和“上一步”按钮,该日历应该可以遍历月份 迭代功能可以正常工作,但是当月份发生变化时,按钮的内容和功能应该更新,以显示新月份的上一个和下一个按钮 if (month == 11) { var next_month = '<input id="next" onclick = "callMonth(' + 0 + ',' + (year + 1) + ');" typ
if (month == 11) {
var next_month = '<input id="next" onclick = "callMonth(' + 0 + ',' + (year + 1)
+ ');" type="button" data-icon="arrow-r" data-inline="true" value="'
+ monthNames[0] + ' ' + (year + 1) + '" />';
} else {
var next_month = '<input id="next" onclick="callMonth(' + (month + 1) + ','
+ year + ');" type="button" data-icon="arrow-r" data-inline="true" value="'
+ monthNames[month + 1] + ' ' + (year) + '" />';
}
// previous month
if (month == 0) {
var prev_month = '<input id="next" onclick = "callMonth(' + 11 + ','
+ (year - 1) + ');" type="button" data-icon="arrow-l" data-inline="true" value="'
+ monthNames[11] + ' ' + (year - 1) + '" />';
} else {
var prev_month = '<input id="next" onclick="callMonth(' + (month - 1) + ','
+ year + ');" type="button" data-icon="arrow-l" data-inline="true" value="'
+ monthNames[month - 1] + ' ' + (year) + '" />';
}
if(月==11){
下个月风险值=“”;
}否则{
下个月风险值=“”;
}
//上月
如果(月份==0){
var上个月=“”;
}否则{
var上个月=“”;
}
我正在使用输入按钮的onclick
参数,因为jQuery移动函数$(“#next”).click()在if-else块内不起作用。同样重要的是,函数callMonth(y,m)
本身将调用此代码。上面显示的代码是函数calendarWidget()
的一部分,函数callMonth()
正在调用该函数。因此,onclick
参数函数触发再次构建按钮的函数
现在我的问题是:第一次生成按钮时,它的样式应该是正确的(jquerymobile、next/prev图标)。单击按钮时(无论是上一个月还是下一个月),下一个月或上一个月的所有内容都会正确显示。问题是:按钮将其样式重置为浏览器的默认样式,这意味着没有jQuery mobile ui,没有图标。如前所述,功能更新不会出现任何问题,这意味着可以在几个月内继续迭代
如何防止更改按钮的样式?我应该如何实现按钮的功能(无需重新加载页面?)
很抱歉,我在jQuery移动和英语方面缺乏经验。我找不到记录此错误的任何来源,可能问题在于使用了onclick
,但无法在if-else语句中定义click事件触发器。我很高兴能得到任何关于如何解决这个问题的提示、帮助或线索
提前多谢 由于我的问题没有足够的细节,或者可能是因为它太具体,我找不到简单的解决方案,现在我已经编写了一个简单的解决方法来解决这个问题。
在做了更改之后,我已经尝试用两个按钮调用.trigger(“create”)
,但都不起作用。因此,我只是在所有更改完成后添加了一个页面重新加载:
var callMonth = function(m, y) {
$("#calendar").calendarWidget({month: m, year:y});
eventData = eventFeedReader.read(function(eventData) {
evalCalendar(m, y, eventData);
});
$('#events').page('destroy').page();
}
callMonth函数仍由按钮的onclick参数调用:
<input id="next" onclick="callMonth(' + (month + 1) + ','
+ year + ');" type="button" data-icon="arrow-r" data-inline="true" value="'
+ monthNames[month + 1] + ' ' + (year) + '" />';
”;
所以这里没有变化
尽管我预期命令.page(“destroy”).page()
也会撤消对日历小部件所做的所有更改,但它没有。在页面被破坏和重建后,内容和功能正常工作。我不知道为什么不可能重新启动按钮,但不管怎样-现在一切正常。
无论如何,感谢所有试图猜出解决方案的人,祝那些遇到类似问题的人好运 由于我的问题没有足够的细节,或者可能是因为它太具体,我找不到简单的解决方案,现在我已经编写了一个简单的解决方法来解决这个问题。
在做了更改之后,我已经尝试用两个按钮调用.trigger(“create”)
,但都不起作用。因此,我只是在所有更改完成后添加了一个页面重新加载:
var callMonth = function(m, y) {
$("#calendar").calendarWidget({month: m, year:y});
eventData = eventFeedReader.read(function(eventData) {
evalCalendar(m, y, eventData);
});
$('#events').page('destroy').page();
}
callMonth函数仍由按钮的onclick参数调用:
<input id="next" onclick="callMonth(' + (month + 1) + ','
+ year + ');" type="button" data-icon="arrow-r" data-inline="true" value="'
+ monthNames[month + 1] + ' ' + (year) + '" />';
”;
所以这里没有变化
尽管我预期命令.page(“destroy”).page()
也会撤消对日历小部件所做的所有更改,但它没有。在页面被破坏和重建后,内容和功能正常工作。我不知道为什么不可能重新启动按钮,但不管怎样-现在一切正常。
无论如何,感谢所有试图猜出解决方案的人,祝那些遇到类似问题的人好运