Javascript 如何在不阻止listview中的UI可视化更改的情况下处理tap事件
使用jQuery移动按钮,如:Javascript 如何在不阻止listview中的UI可视化更改的情况下处理tap事件,javascript,jquery,ios,css,jquery-mobile,Javascript,Jquery,Ios,Css,Jquery Mobile,使用jQuery移动按钮,如: <ul data-role="listview"> <li><a data-role="button" href="#" id="test">Test</a></li> </ul> 问题是,preventDefault阻止了对ui btn down/active/up/等按钮的JQM css更改,或者仅仅添加tap处理程序就阻止了这些更改。因此,用户感觉不太对,因为单击按钮没有视觉效
<ul data-role="listview">
<li><a data-role="button" href="#" id="test">Test</a></li>
</ul>
问题是,preventDefault阻止了对ui btn down/active/up/等按钮的JQM css更改,或者仅仅添加tap处理程序就阻止了这些更改。因此,用户感觉不太对,因为单击按钮没有视觉效果
这个问题有什么解决办法吗?可能手动分配每个处理程序中的类-尽管这似乎很繁重。您可以使用按钮元素,而不是阻止链接的默认操作:
<div role="main" class="ui-content">
<button id="test">Test</button>
<br /><br />
<input type="text" value="" id="output" />
</div>
$('#test').on('tap', function(event) {
$("#output").val(new Date());
});
jQM以相同的方式设置按钮的样式,因此没有真正的区别
工作
经过进一步测试,我对这个问题的假设是错误的。问题似乎在于抽头本身的持续时间。如果你点击的太快,这些类不会被应用,但会再长几毫秒。我结束这个问题。您在活动结束时是否尝试过返回false?是的,与PreventDefaults相同,这是一个好主意,在大多数情况下都应该有效。但是,据我所知,您不能在listview中使用s-您必须使用锚点…我刚刚更新了问题以指定listview的用法。@maxmore14,如果您设置href=,为什么需要使用默认值?另外,您可以使用垂直控制组获得一个简单的按钮列表:在进一步的测试中,我对这个问题的全部假设都是错误的。谢谢你的帮助!
<div role="main" class="ui-content">
<button id="test">Test</button>
<br /><br />
<input type="text" value="" id="output" />
</div>
$('#test').on('tap', function(event) {
$("#output").val(new Date());
});