jQuery Mobile Swipe事件未使用Knockout.js触发

时间:2018-07-04 06:07:59

标签: jquery-mobile knockout.js swipe

我有这个html表,需要浏览“滑动”上的页面。

onSwipeRight = function () {
	gridPager.CurrentPage(gridPager.CurrentPage() + 1);
},
                    
onSwipeLeft = function () {
	gridPager.CurrentPage(gridPager.CurrentPage() - 1);
},
<table width="100%" border="0" cellspacing="0" cellpadding="0" data-bind="swiperight: onSwipeRight, swipeleft: onSwipeLeft">
	<tr class=" filterpanel">
		<td><span class="rowMove" style="background: none;"></span></td>
		<td><input type="text" data-bind="value: filtercus.name, valueUpdate: 'afterkeydown'"></td>
		<td><input type="text" data-bind="value: filtercus.code, valueUpdate: 'afterkeydown'"></td>
		<td><input type="text" data-bind="value: filtercus.description, valueUpdate: 'afterkeydown'" style="width: 295px"></td>
	</tr>
</table>

当我在click事件上调用相同的JS方法时,该事件将成功触发。但是在“滑动”时不起作用。

1 个答案:

答案 0 :(得分:1)

如果您需要通过剔除处理滑动事件,而不是直接处理,请使用event绑定:

data-bind="event:{swiperight: onSwipeRight}"

很明显,onSwipeLeftonSwipeRight必须在您的视图模型中声明。

此外,我相信您已经知道传递给敲除事件处理程序函数的前两个参数是

  1. data(上下文中的ViewModel)
  2. event(jQuery事件)

这意味着,您还可以仅使用一个功能来处理左右两个滑动方向:

onSwipe = function (data, event) {...

...因为jQuery.Event.type将为"swiperight""swipeleft"