2

我正在使用两个插件:同位素和来自 Codrops http://tympanus.net/Tutorials/CustomDropDownListStyling/index3.html的自定义样式插件

一切正常,除了我必须单击下拉项两次才能获得适当的效果。

这里是带有 jsFiddle 的 jQuery 和我正在做的事情。

$(function(){
   /*isotope filtering*/ 
    var $container = $('#container'),
        filters = {};

    $container.isotope({
      itemSelector : '.main-element',
      masonry: {
        columnWidth: 80
      }
    });

    // filter buttons
    $('.dropdown a').click(function(){
      var $this = $(this);
      // don't proceed if already selected
      if ( $this.hasClass('selected') ) {
        return;
      }

      var $optionSet = $this.parents('.option-set');
      // change selected class
      $optionSet.find('.selected').removeClass('selected');
      $this.addClass('selected');

      // store filter value in object
      // i.e. filters.trainability = 'low'
      var group = $optionSet.attr('data-filter-group');
      filters[ group ] = $this.attr('data-filter-value');
      // convert object into array
      var isoFilters = [];
      for ( var prop in filters ) {
        isoFilters.push( filters[ prop ] )
      }
      var selector = isoFilters.join('');
      $container.isotope({ filter: selector });

      return false;
    });

 /*CUSTOM DROP-DOWN LIST STYLING*/   

function DropDown(el) {
    this.dd = el;
    this.placeholder = this.dd.children('span');
    this.opts = this.dd.find('ul.dropdown > li');
    this.val = '';
    this.index = -1;
    this.initEvents();
}
DropDown.prototype = {
    initEvents : function() {
        var obj = this;

        obj.dd.on('click', function(event){
            $(this).toggleClass('active');
            return false;
        });

        obj.opts.on('click',function(){
            var opt = $(this);
            obj.val = opt.text();
            obj.index = opt.index();
            obj.placeholder.text(obj.val);
        });
    },
    getValue : function() {
        return this.val;
    },
    getIndex : function() {
        return this.index;
    }
}
    $(function() {

                var dd = new DropDown( $('#dd') );

                $(document).click(function() {
                    // all dropdowns
                    $('.wrapper-dropdown-3').removeClass('active');
                });

                var dd = new DropDown( $('#ee') );

                $(document).click(function() {
                    // all dropdowns
                    $('.wrapper-dropdown-3').removeClass('active');
                });

            });     
     });

http://jsfiddle.net/mcnutty757/pJu79/12/

4

1 回答 1

0

我确实在这里更新了小提琴检查

问题在于初始化..

 $this.placeholder.text(this.val);
于 2013-05-26T01:58:55.747 回答