1

我很难找到语法,甚至只是一个优雅的解决方案。

我想为用于预览其他图像的轮播实现“当前查看”标签。我将标签从服务器注入每张幻灯片,但将它们设置为隐藏类。

这是我的功能:

var api = $('#imageNav').data('tabs');
var currentImageId = '#' + api.getCurrentPane().attr('id');
var $carousel = $('#carousel_slides');

$carousel.find('a > span').addClass('hidden')
                          .parentsUntil($carousel).find('a[href=\"' +
                           currentImageId + '\"] > span').removeClass('hidden');

我希望能够在 3 个不同的事件上运行该功能:

1. DocumentReady()
2. $('#imageNav li > a').click()
3. $('#carousel_slides span > a').click()

有没有办法将所有 3 与 .on() 结合起来,还是我必须为所有 3 单独设置它?

谢谢。

编辑- 我在我的 $(function () {}); 但没有运气。

var SetCurrentlyViewingLabel = function() {
    var api = $('#imageNav').data('tabs');
    var currentImageId = '#' + api.getCurrentPane().attr('id');
    var $carousel = $('#carousel_slides');
    $carousel.find('a > span').addClass('hidden')
             .parentsUntil($carousel).find('a[href=\"' + currentImageId + '\"] > span')
             .removeClass('hidden');
};

SetCurrentlyViewingLabel();

$('#imageNav li > a, #carousel_slides span > a').click(SetCurrentlyViewingLabel());
4

1 回答 1

1

我相信你可以用逗号将 2 和 3 结合起来。第一个我不确定如何实现。

$('#imageNav li > a, #carousel_slides span > a').click()
于 2013-06-14T13:44:27.740 回答