使用jquery.mobile-1.1.0时,我经历了一些稍微不同的问题,并且在浏览众多答案时遇到了困难。下面我记录了我遇到的问题和找到的解决方案。
代码段1:
<script type="text/javascript">
$('#task').live('pageinit', function() {
$('#checkin_button').html("Check-in to receive points");
});
</script>
通过这个方法,我可以改变文本,但是该方法会清除添加的跨度和类,从而压缩按钮。
![button image](https://istack.dev59.com/yMGk1.webp)
HTML
<div id="task_button">
<a data-role="button" id="checkin_button" data-transition="slide" data-theme="b" href="#task-success" data-icon="check" data-corners="true" data-shadow="true" data-iconshadow="true" data-iconsize="18" data-wrapperels="span" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-left ui-btn-up-b">
Check-in to receive points
</a>
</div>
代码片段 2
<script type="text/javascript">
$('#task').live('pageinit', function() {
$('#checkin_button').val("Check-in to receive points");
});
</script>
这对按钮文本没有影响。
![button image](https://istack.dev59.com/V9toN.webp)
HTML
<div id="task_button">
<a data-role="button" id="checkin_button" data-transition="slide" data-theme="b" href="#task-success" data-icon="check" data-corners="true" data-shadow="true" data-iconshadow="true" data-iconsize="18" data-wrapperels="span" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-left ui-btn-up-b">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">
Original Text.
</span>
<span class="ui-icon ui-icon-check ui-icon-shadow ui-iconsize-18">
</span>
</span>
</a>
</div>
代码片段 3
<script type="text/javascript">
$('#task').live('pageinit', function() {
$('#checkin_button').val("Check-in to receive points").button("refresh");
});
</script>
这会生成以下错误信息:
无法在初始化之前调用按钮上的方法;尝试调用方法“refresh”
这让我很困惑,因为该函数仅在页面初始化后才被调用。继续阅读,我注意到Priyank在stackoverflow.com/a/7279843/61821引用了一个可行的答案。
片段4-工作
<script type="text/javascript">
$('#task').live('pageinit', function() {
$('#checkin_button .ui-btn-text').val("Check-in to receive points");
});
</script>
更好的jQuery选择器运行得非常完美。