我有一个类似于以下代码的操作表:
<ul data-role="actionsheet" id="marketplace-actions" >
<li><a href="#" data-action="getCategoriesByPrice(5)">$$$$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice(4)">$$$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice(3)">$$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice(2)">$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice(1)">$</a></li>
</ul>
动作表由tabtrip上的标签打开,如下所示:
<div id="marketplace-tabstrip" data-role="tabstrip" style="font-size:125%; vertical-align:top;">
<a href="#marketplace-recent-view" data-icon="font-flash">Just Added</a>
<a href="#marketplace-category-view" data-icon="font-tags">Select Category</a>
<!-- this one --> <a data-rel="actionsheet" href="#marketplace-actions" data-icon="font-dollar">Select Price <span class="km-font-resize-full"/></a>
<a href="#marketplace-sort-view" data-icon="font-sort-alt-up">Change Order</a>
<a href="#marketplace-location-view" data-icon="font-location">Change Location</a>
</div>
以及单击操作时应触发的函数是:
function getCategoriesByPrice(price) {
console.log("function getCategoriesByPrice() called");
console.log("filter Categories by: " + price);
}
我的问题是,当我单击标签条按钮时,无论当前选择了哪个选项,无论是默认选项还是最近选择的选项,都会触发所选选项的数据操作事件。这是默认行为,这是我可以覆盖的吗?我宁愿动作表在屏幕上不显示任何内容,只有在我更改选择时才会触发。
答案 0 :(得分:0)
我最后不得不通过从数据操作函数调用中删除参数来解决这个问题,如下所示:
<ul data-role="actionsheet" id="marketplace-actions" >
<li><a href="#" data-action="getCategoriesByPrice_5">$$$$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice_4">$$$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice_3">$$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice_2">$$</a></li>
<li><a href="#" data-action="getCategoriesByPrice_1">$</a></li>
</ul>
并创建这样的单独函数:
function getCategoriesByPrice_5() {
getCategoriesByPrice(5);
}
function getCategoriesByPrice_4() {
getCategoriesByPrice(4);
}
也许Telerik现在已经改变了这个,但是,当时,这是我设法获得动作表来做我想要的唯一方法。