2

轮播滑动后,我想在 ID 之外的输入中添加一个值myCarousel

轮播滑动后实现事件的函数如下:

$('#myCarousel').bind('slid', function() {
  $('input[name=linkOnly]').val('Test')
}

一旦特定幻灯片滑动,我想触发一个事件。我试过类似的东西,$('#myCarousel li[data-slide-to=1]').bind('slid', function() ...但它没有注册。

任何帮助表示赞赏,谢谢。

4

1 回答 1

4

您可以在适当的事件上设置一个事件处理程序,然后根据幻灯片是.current. 例如,要在滑动 1 循环时触发一些 javascript:

$(document).on("slid", function(event) {
  if ($(event.target).find(".active").data("slide-to") == 1) {
    // do stuff
  }
});

从快速测试来看,这似乎不起作用,除非它附加到旋转木马上方的元素(如果你有多个旋转木马,你还需要稍微改变一下)。

编辑:快速浏览后,如果绑定到轮播本身,上述内容不起作用的原因是,直到事件触发active后才立即添加类slid(似乎如果将处理程序添加到父元素,当事件冒泡时,active该类被添加)。slid您可以通过使用setTimeout延迟触发的行为来解决此问题(即使超时也有效0):

$("#myCarousel").on("slid", function(event) {
  var carousel = $(event.target);
  setTimeout(function() {
    if (carousel.find(".carousel-indicators .active").data("slide-to") === 1) {
      // do stuff
    }
  }, 0);
});

额外的代码是否值得取决于您,尽管它可能会更稳定一些。甚至可能值得稍微延迟(而不是0),以确保事情按您期望的方式工作。

于 2013-04-15T02:04:20.653 回答