3

请参阅新的/更新的问题

https://stackoverflow.com/questions/7423874/jquery-navigation-and-jscrollpane-work-at-first-but-not-after-click

现在尝试添加自定义滚动条。请看演示:

演示

截至目前,我根本无法让它出现。我的本地源包括:jquery.ui、jquery、jquery.easing.1.3.js、jquery.mCustomScrollbar.css、jquery.mCustomScrollbar.js、jquery.mousewheel.min.js。

我相信这与:

$('.grid').fadeOut(0);

单击每个新菜单项后,我只需要在 jquery 中的某处包含此行:

$("#mcs_container").mCustomScrollbar("vertical",300,"easeOutCirc",1.05,"auto","yes","yes",15);

另外,在 chrome 浏览器中出现以下错误:

247Uncaught TypeError:无法读取 null $.fn.mCustomScrollbar.btnsScrollTimerjquery.mCustomScrollbar.js:247 jQuery.event.handlejquery-latest.js:3001 b 的属性“顶部”

谢谢!

4

2 回答 2

3

演示

好吧,使用简化的标记非常容易(我不能说使用array.sort()带有 jquery 选择器返回集的方法是在网站上重新排列表格数据的最简单方法)。在这里,我们简单地获取<ul>s 的列表,并根据它们的 first 使用自定义排序函数对它们进行排序<li>

var nodeList = $(".grid ul").sort(function(a,b){
    return ($(a).find("li:first").text() > $(b).find("li:first").text());
});

$(".grid ul, .grid:gt(0)").remove();

$(".grid").append(nodeList);

再简单不过了:)

于 2011-08-31T00:29:47.217 回答
2

工作演示

编辑:
全功能演示:

演示

Huuuh :) 完成!
在网上搜索如何按字母顺序对 UL 进行排序。但没有结果。

这个怎么运作:

  • 将所有存在的电影克隆到 FIRST 中.slide(现在您不必index -1像以前那样使用任何魔法来获得正确.slide的动作链接后)
  • 创建了一个函数'sorty' :)
  • 将所有电影名称抓取到每个父元素li的 jQuery中.data()ul
  • 现在网格ul包含电影名称。
  • ul在第一个按字母顺序排序.slide
  • 有用!

您可以看到我将您的一些代码从 jQuery 移动到 CSS(标有 // 添加!),然后我删除了if对“全部”链接的检查。
在 HTML 中添加了一个.slide包含“信息”

的属性 jQuery 现在将使用克隆的元素填充此幻灯片!
我使用 jQuery 选择器:gt()获取所有下一个元素,但定义了一个
(这意味着例如:如果我们使用$('.element:gt(0)').css({color:'red'});大于索引 '0' 的所有元素将有一个红色文本。只有第一个元素将具有默认颜色。)


如果您有任何问题,请......问吧!

现在在几行中,它看起来像:

$('.grid:gt(0)').find('ul:eq(0)').fadeOut(0);    // hide titles (not from the first .grid (:eq(0)))   
$('.grid:gt(0) ul:visible:not(:eq(0))').clone().appendTo( $('.grid:eq(0)') ); // after we hided all the titles - clone all UL elements to our first .slide

$('.slide:gt(0)').hide();

function sorty() {    // sort UL elements by holding data (the data will be the movie name! )
    $('.grid:eq(0) ul:gt(0)').each(function() {
        var txt1 = $(this).children('li:eq(0)').text();
        $(this).data('name', txt1);
    });
    var items = $('.grid:eq(0) ul');
    items.sort(function(a, b) {
        var charA = $(a).data('name');
        var charB = $(b).data('name');
        if (charA < charB) return -1;
        if (charA > charB) return 1;
        return 0;
    });
    var grid = $('.grid:eq(0)');
    $(grid).append(items);
    $('.grid:gt(0)').find('ul:eq(0)').show(); // redo visibility for infos.
}
sorty(); // run sorty!

$('ul.nav li').click(function() {
    $(this).addClass('btnSelect').siblings().removeClass('btnSelect');
    var i = $(this).index();
    $('.slide:visible').fadeOut(400, function() {
        $('.slide:eq(' + i + ')').fadeIn(400);
    });
});
于 2011-08-31T00:14:22.777 回答