2012-08-29 60 views
2

当您滚动页面,并通过按列表视图按钮开始滚动时,该按钮保持为滚动高亮显示,并在滚动完成后保持高亮显示。如何在滚动开始时取消选择此选项?取消选择scrollstart上的所有列表视图项

它的工作原理,如果我这样做:

$(document).bind('scrollstart', function(ev) { 
    $('*').blur(); 
}); 

但是,这是效率低下,导致页面滚动开始前落后,我已经试过bluring只是aliui-btnui-li,但是这并未”不重视它。

+0

什么是列表视图按钮? [焦点选择器](http://api.jquery.com/focus-selector/) - 你试过这个吗? –

+0

呃。抱歉。 Jquery移动。但仍然 - 焦点选择器可能是有用的 –

+0

有用的感谢,虽然我尝试了上述代码,但用'$('*:focus')。blur();'而不是,但并不高亮任何东西,奇怪。 – Timm

回答

2

当你点击一个jQuery Mobile伪页上的列表项时,你基本上将ui-btn-down-*类添加到列表项(*表示其中一个主题字母)。

一旦用户开始滚动,在这里您可以删除这个类就是一个例子:

$(document).on("scrollstart", function() { 
    setTimeout(function() { 
     $.mobile.activePage.find('.ui-li').removeClass('ui-btn-down-a ui-btn-down-b ui-btn-down-c ui-btn-down-d ui-btn-down-e'); 
    }, 100); 
});​ 

UPDATE

测试我的Droid十一发现超时帮外卖的高亮状态更一致。你可以为了自己的目的而混淆超时时间。

这里是一个演示:http://jsfiddle.net/WrqbG/7/

UPDATE

我也意识到,.ui-btn-hover-*类应用,所以回到你要删除这些类以及一个未高亮列表。

.removeClass('ui-btn-down-a ui-btn-down-b ui-btn-down-c ui-btn-down-d ui-btn-down-e') 

就变为:

.removeClass('ui-btn-down-a ui-btn-down-b ui-btn-down-c ui-btn-down-d ui-btn-down-e ui-btn-hover-a ui-btn-hover-b ui-btn-hover-c ui-btn-hover-d ui-btn-hover-e') 
+0

非常棒的人。真棒。 – shamittomar

相关问题