我使用charisma模板开发Web App。但是,子菜单无法在手机上打开。
这是hmtl代码:
<li class="accordion">
<a href="#"><i class="icon-tasks"></i><span class="hidden-tablet"> Manage Task</span></a>
<ul class="nav nav-pills nav-stacked">
<li>
<a class="ajax-link" href="<?php echo $this->Html->url(array('controller' => 'Tasks', 'action' => 'index/1')); ?>"><i
class="icon-list-alt"></i>
<span class="hidden-tablet">My Assigned Tasks</span>
</a>
</li>
<li>
<a class="ajax-link" href="<?php echo $this->Html->url(array('controller' => 'Tasks', 'action' => 'index/2')); ?>"><i
class="icon-list-alt"></i>
<span class="hidden-tablet">My All Tasks</span>
</a>
</li>
<li>
<a class="ajax-link" href="<?php echo $this->Html->url(array('controller' => 'Calendars', 'action' => 'index')); ?>"><i
class="icon-list-alt"></i>
<span class="hidden-tablet"> Assign Tasks</span>
</a>
</li>
</ul>
这是js代码:
$('.accordion > a').click(function (e) {
e.preventDefault();
var $ul = $(this).siblings('ul');
var $li = $(this).parent();
if ($ul.is(':visible')) $li.removeClass('active');
else $li.addClass('active');
$ul.slideToggle();
});
$('.accordion li.active:first').parents('ul').slideDown();
我认为e.preventDefault()不适用于移动设备,所以当点击标签时它仍然呈现并且不显示子菜单。
请帮我解决这个问题。 感谢。
答案 0 :(得分:0)
尝试将点击和 touchstart 事件绑定在一起,如下所示:
$('selector').on('click touchstart', function(e)
{
e.preventDefault();
});
或者你可以实现一个帮助脚本,比如Touche.js
使用jQuery应用您的点击事件并静默重新映射它们 到了&#34; touchend&#34;支持触摸的设备的事件。
答案 1 :(得分:0)
对我来说,更好的解决方案是使用点击和点按事件
MyData[!apply(apply(MyData, 2, function(x) x > quantile(x, 0.99)), 1, any), ]
如果您使用 touchstart ,则无法滚动此链接