javascript - 取消选择滚动开始时的所有 ListView 元素

标签 javascript jquery css jquery-mobile jquery-events

当您滚动页面并通过按 ListView 按钮开始滚动时,该按钮在滚动时保持突出显示状态,并在滚动完成后保持突出显示状态。当滚动开始时如何取消选择此选项?

如果我这样做,它就会起作用:

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

但这效率低下,会导致页面在滚动开始之前滞后,我尝试过仅模糊 aliui-btnui-li,但这并不会取消突出显示它。

最佳答案

当您单击 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);
});​

更新

在我的 Droid X 上进行测试时,我发现超时有助于更一致地取消突出显示的状态。您可以出于自己的目的而改变超时的持续时间。

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

更新

我还意识到应用了 .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')

关于javascript - 取消选择滚动开始时的所有 ListView 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187246/

相关文章:

javascript - Botkit - 异步拉取用户数据

javascript - 以新的形式响应更新状态

javascript - JS 子字符串理解吗?

javascript - 将 textExtraction 与 jQuery 表排序器一起使用时出现问题

css - compass 导入 Sprite 的问题

javascript - 使用 JavaScript 解决这个编码难题

javascript - 绕一圈

javascript - 动态 jQuery 航点循环

html - 在相对 div 中居中绝对内容

css - 我怎样才能让下拉框与 css 类一起工作?