您的位置:首页 > Web前端 > JQuery

jquery mobile navbar: 对click事件的响应不准确

2015-01-27 15:08 260 查看
问题
我在页面底部的footer中添加了一个固定的navbar,但不知道为什么,这个navbar中的按钮对点击事件的反应总是丢三落四,感觉有30%左右的onclick事件没有处理,但是navbar中按钮的ui-btn-active class状态可以被正确的修改。

解决办法(work-around)
将navbar onclick中的代码移到vclick事件中,

原来的页面是这样的:

HTML
<div data-role="footer" data-position="fixed" data-tap-toggle="false">
<div data-role="navbar">
<ul>
<li><a href="#" onclick="RootSwiperHandler.swipeTo(0)" class="ui-btn-active" data-icon="film">电影</a></li>
<pre name="code" class="html">      <li><a href="#" onclick="RootSwiperHandler.swipeTo(1)" data-icon="archive">影院</a></li>
<pre name="code" class="html">      <li><a href="#" onclick="RootSwiperHandler.swipeTo(2)" data-icon="info">关于</a></li>
</ul>
</div>
</div>




现在改成这样

HTML
<div data-role="footer" id="root_footer" data-position="fixed" data-tap-toggle="false">
<div data-role="navbar" id="root_navbar">
<ul>
<li><a href="#" data-idx="0" class="ui-btn-active" data-icon="film">电影</a></li>
<li><a href="#" data-idx="1" data-icon="archive">影院</a></li>
<li><a href="#" data-idx="2" data-icon="info">关于</a></li>
</ul>
</div>
</div>


Javascript
$("#root_navbar").navbar().delegate("a", "vclick", function(event) {
var l_idx = event.srcElement.getAttribute('data-idx');
if ( null != l_idx && l_idx ) {
RootSwiperHandler.swipeTo(l_idx);
}
});


注:希望那个路过的高人可以指点一下,有没有更好的办法来解决这个问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐