打开操作表会立即触发数据操作

时间:2014-01-20 17:52:47

标签: javascript kendo-ui kendo-mobile

我有一个类似于以下代码的操作表:

<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);
}

我的问题是,当我单击标签条按钮时,无论当前选择了哪个选项,无论是默认选项还是最近选择的选项,都会触发所选选项的数据操作事件。这是默认行为,这是我可以覆盖的吗?我宁愿动作表在屏幕上不显示任何内容,只有在我更改选择时才会触发。

1 个答案:

答案 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现在已经改变了这个,但是,当时,这是我设法获得动作表来做我想要的唯一方法。