我从jQuery移动版开始,我的按钮有一些问题。
Web 应用程序是一个购物清单。它显示要购买的商品列表,并在页脚按钮中显示我可以对商品执行的操作。
这些操作是:
- 增加要购买的项目数量
- 减少要购买的项目数量
- 在列表中上移项目
- 在列表中下移项目
- 添加新项目
- 删除项目
- 修改项目文本描述
这些操作是在javascript中实现的,并且工作正常。我遇到的问题是控制按钮和相关操作。
根据经验,我看到对于递增和递减,拥有处于活动状态的按钮更方便,对于其他操作,最好有一个选定的项目并在按下按钮时对所选项目应用操作。添加项目时,该项目将插入到所选项目之前,如果未选择任何项目时按下,则新项目将追加到列表中。
我还想要 2 种模式。在一种模式下,仅显示递增和递减按钮,用户可以更新其列表中的项目数。在另一种模式下,用户正在修改其列表。在第二种模式下,需要所选项目。
我设法通过使用 .on() 方法作为委托来关联我的项目列出的默认操作。
$('#itemList').on( "click", ".item", function(evt)
{ ctrl.doAction($(evt.currentTarget)); });
这是我用来测试第一种模式的 html 代码。
<!-- footer -->
<div data-role="footer" data-position="fixed" class="ui-bar" id="btnBar" >
<a href="" data-role="button" data-icon="plus" id="btnPlus"> Plus </a>
<a href="" data-role="button" data-icon="minus" id="btnMinus"> Minus </a>
</div>
<!-- /footer -->
我应该把什么作为href值?我不希望重新加载页面。在某些示例中,我看到"#"。
这是我将操作与按钮相关联的方式:
$('#btnPlus').on( "tap", function(evt)
{ ctrl.doAction = ctrl.increment; });
我遇到的另一个问题是没有关于按钮单击操作的反馈。当我单击一个按钮时,我希望它会突出显示一小段时间。这不会发生。
浏览器也有不同的行为。在 Firefox 中,点击的按钮会出现一个蓝色光晕,显然表明它具有焦点。但该按钮不会显示为活动状态。
如果我在Android上将"#!"作为href(不知道这意味着什么),点击的按钮将显示为活动状态。
我应该使用点击还是点击作为事件类型?我怎么能写点击或点击?
如何实现显示为活动和非活动的双状态按钮?如何使用操作按钮:始终显示非活动状态并在按下时反馈?
我自己解决了这个问题。
-
为了在页脚中的按钮集之间切换,我在 HTML 文档中创建了多个页脚,在隐藏的页脚中使用 style="display:none"。将显示没有此内容的那个。我为每个页脚分配了一个特定的 id,以便我可以写 $("#footer1").hide();$("#footer2").show();
-
我有按钮可以在页脚之间切换。必须使用"mouseup"事件调用页脚切换事件处理程序。这是它在iPad和Android手机上工作所必需的。
-
要更改外观,请不要按照此处的建议使用 .button()。用:
$("#myButton") .removeClass( "ui-btn-up-a ui-btn-down-a ui-btn-hover-a" ) .addClass("ui-btn-up-b") .attr( "data-theme", "b" );
注意:我的代码中有一个错误,导致绝望的拔头发