Могу ли я использовать собственное свойство элемента в качестве аргумента для вызова плагина?

0

Я реализую плагин slim scroll на моей странице (он преобразует полосы прокрутки по умолчанию на прокручиваемые divs в более красивые), а вызов реализации, как в их примере, выглядит следующим образом:

$('#inner-content-div').slimScroll({
   height: '250px'
});

Поскольку у меня есть потребность в более прокручиваемых divs разной высоты, мне нужно будет вызывать этот плагин несколько раз, передавая разную высоту в качестве аргумента каждый раз.

Чтобы уменьшить так много кода, сделайте его более читаемым, но также, чтобы избежать необходимости менять мой JS при изменении моего CSS, могу ли я использовать что-то в этом роде:

$('#inner-content-div').slimScroll({
   height: $(this).css('height')
});

Вышеприведенный пример, конечно, не работает, это просто то, что я пробовал, и это не удалось. Но это должно проиллюстрировать мое намерение.

  • 1
    вышеописанное будет работать, только если вы установите высоту для элемента в CSS. в противном случае $(this).height(); Сделаю
  • 0
    Ну, у меня есть высота в CSS, я должен в любом случае, иначе div не будет прокручиваться с самого начала ... однако он действительно не читает его, и если я использую ваш код, он работает нормально .. Могу ли я принять комментарий как ответ на мой вопрос здесь? :П
Показать ещё 1 комментарий
Теги:
jquery-plugins

3 ответа

1
Лучший ответ

Нет, вы не можете, поскольку не существует области, определяющей значение this элемента, но вы можете создать такую область с each

$('#inner-content-div').each(function() {
   $(this).slimScroll({
       height: $(this).css('height')
   });
});
1

ваш код будет работать, только если вы установите высоту для элемента в css. иначе $(this).height(); Сделаю

  • 0
    О, извини, на самом деле это не на 100% правильно. Он успешно реализует плагин, но неверно читает высоту ... Я думаю, это, вероятно, из-за проблемы с областью из ответа аденео, возможно, он просто предполагает высоту, основанную на чем-то. (извините за то, что заставил вас опубликовать ненужный ответ)
0

Вы можете сделать это:

var myElem = $('#inner-content-div');
myElem.slimScroll({
   height: myElem.css('height')
});

Это будет работать так, как вы планируете. Просто назначьте элемент и используйте его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню