jQuery Isotope:

#jquery #html #css #jquery-isotope

#jquery #HTML #css #jquery-изотоп

Вопрос:

Есть ли способ сохранить позиционирование без изменений, но сделать элементы недоступными для нажатия? демонстрация здесь.

Добавляя другой класс вместо .element , я теряю позиционирование.

Извините, что не добавил конкретные примеры кода, поскольку я не уверен, где исправить эту проблему (разметка, css или часть jquery)

Комментарии:

1. Смотрите бесплатную кладку здесь: masonry.desandro.com

Ответ №1:

Может быть

 $(yourelement).css("cursor","auto");
  

?

Ответ №2:

Элементы доступны для просмотра только потому, что в них есть этот фрагмент скрипта.

 // change size of clicked element
$container.find('.element').live('click', function(){
  $(this).toggleClass('large');
  $container.isotope('reLayout');
});
  

Вы можете изменить класс CSS на любой, какой захотите, при условии, что ему может соответствовать itemSelector опция

 $container.isotope({
  itemSelector: '.my-class'
});
  

Комментарии:

1. перечитывая мой вопрос еще раз, я понимаю, что это было не слишком хорошо объяснено 🙂 Я хочу сделать некоторые элементы интерактивными (и сделать их масштабируемыми, как показывают демонстрации), а некоторые другие элементы НЕ интерактивными .. таким образом, тот же массив элементов, но некоторые из них не являются интерактивными.. Если я просто добавлю новый класс, похожий на .element, позиционирование будет потеряно..

Ответ №3:

Если вы хотите сделать некоторые элементы не кликабельными, вы можете просто проверить это в прослушивателе

 var notClickable = ['Hg','Co','Rb']; // these element are not clickable

      // change size of clicked element
      $container.delegate( '.element', 'click', function(){
       //if not in notClickable tab
       if(jQuery.inArray( $(this).attr('data-symbol'), notClickable )==-1){
        $(this).toggleClass('large');
        $container.isotope('reLayout');
       }
      });
  

Демонстрация здесь:http://jsfiddle.net/thomasNDS/bKtvN/1 /