1

これで助けが必要です。それを機能させるために何日も頭を割っていました。

このデモhttp://jsfiddle.net/8QkEw/313/を参照すると、展開/選択された itemSelector が展開/選択されたまま、内部ハイパーリンクが機能するようにコードを変更する方法を教えてください。

$(function(){


  var $container = $('#container'),
      $items = $('.item');

  $container.isotope({
    itemSelector: '.item',
    masonry: {
      columnWidth: 100
    },
    getSortData : {
      selected : function( $item ){
        // sort by selected first, then by original order
        return ($item.hasClass('selected') ? -500 : 0 ) + $item.index();
      }
    },
    sortBy : 'selected'
  })

  $items.click(function(){
    var $this = $(this);
    // don't proceed if already selected
    var $previousSelected = $('.selected');
    if ( !$this.hasClass('selected') ) {
      $this.addClass('selected');
    }

    $previousSelected.removeClass('selected');

    // update sortData for new items size
    $container
      .isotope( 'updateSortData', $this )
      .isotope( 'updateSortData', $previousSelected )
      .isotope();

  });

});

ユーザーが内側のハイパーリンクをクリックしても、展開/選択されたボックスが最小化されない場合のみです。他の領域をクリックしてもトリガーされます$previousSelected.removeClass('selected');

前もって感謝します。

4

2 に答える 2

2

リンクでのイベントの伝播を停止します。

$('.item a').click(function(event){
    event.stopPropagation();
});

ここにデモンストレーションがあります: http://jsfiddle.net/VCmNU/

于 2013-01-09T07:15:22.380 に答える
2

次のハンドラを追加できます

 $('.item a').click(function(e){
     e.stopPropagation();
 });

作業サンプルはこちら.

于 2013-01-09T07:19:52.640 に答える