是否可以将click事件添加到任何滑块控件

时间:2013-04-15 10:08:46

标签: javascript javascript-events anythingslider

您好我在我的网站中使用Anything滑块,我想在控件中添加一个click事件。 这可能吗?当我试图这样做时,我的事件没有触发。可以有人对此有所了解。

我的点击事件详情

 $(function(){
$('.thumbNav li a').click(function () {
$(".spec li a").css('color','#fff');
    });
});

小提琴链接 jsfiddle.net/Mottie/ycUB6/5340

2 个答案:

答案 0 :(得分:1)

您是否检查过JS控制台是否有错误?您错过了事件处理程序中的$前选择器。

为了以防万一,您可以考虑使用live方法绑定事件。

编辑:

在你的小提琴中没有类'spec'的元素 - 链接Tab#在div中,类spec-nav。以下代码工作正常:

$('.thumbNav li a').click(function () {
    $(".spec-nav li a").css('color','#f0f');
});

检查updated fiddle

答案 1 :(得分:1)

您编码不起作用的原因是因为导航控件在AnythingSlider初始化之后才存在。所以,你真的有两个选择:

1)在onInitialized回调函数(demo)中使用您的函数:

var tabContainers = $('div.spec-nav > div');
tabContainers.hide().filter(':first').show();

$(function () {
    $('#slider1, #slider2, #slider3').anythingSlider({
        theme: 'metallic',
        easing: 'easeInOutBack',
        navigationFormatter: function (index, panel) {
            return ['Slab', 'Parking Lot', 'Drive', 'Glorius Dawn', 'Bjork?', 'Traffic Circle'][index - 1];
        },

        // Callback when the plugin finished initializing
        onInitialized: function (e, slider) {
            $('div.spec-nav ul li a').click(function () {
                tabContainers.hide();
                tabContainers.filter(this.hash).show();
                $('div.spec-nav ul li a').removeClass('spec-actv');
                $(this).addClass('spec-actv');
                return false;
            }).filter(':first').click();
        },

        onSlideComplete: function (slider) {
            // alert('Welcome to Slide #' + slider.currentPage);
        }
    });

});

2)创建导航选项卡时构建此功能...如果查看navigationFormatter documentation,您将看到可以返回选项卡的任何属性;这使用创建DOM元素的jQuery() method

$('#slider').anythingSlider({
  navigationFormatter : function(i, panel){
    return {
      'class'    : 'imatab',
      'data-hdr' : 'Header: ' + panel.find('h2').text(), // save text from the h2 in the panel
      'title'    : 'This text will end up in a tooltip',
      'html'     : '<a class="panel' + i + '" href="#"><span>' + ['Cat', 'Dog', 'Bear', 'Wolf', 'Horse', 'Bjork?'][index - 1] + '</span></a>',
      'click'    : function(){ alert("AHHH I've been clicked"); }
    };
  }
});

如果您使用的是jQuery 1.8+,则可以传递任何类似的jQuery实例方法:

$('#slider').anythingSlider({
  navigationFormatter : function(i, panel){
    return {
      class : 'imatab',
      on    : {
          click : function( event ) {
              // do something
          }
      },
      html  : '<a class="panel' + i + '" href="#"><span>' + i + '</span></a>'
    }
  }
});

我没有为这种方法制作演示,但我希望你能得到这个想法。