2010-04-01 5 views
1

Я пытаюсь создать простой плагин jquery, который может принимать селекторы в качестве параметров. Все примеры, которые я нахожу, ожидают более сырые «свойства» (ширина, цвет и т. Д.), Чем фактические селекторы. Есть ли хорошие способы сделать это?jQuery, передавая селектора в качестве параметров параметров

Я нашел эту статью: Passing jquery selector to sub-function within a plugin

Но я все еще относительно запутаться.

Цель вроде как это ...

 (function ($) { 
      $.fn.demonstration = function (options) { 

       var defaults = { 
        $selector: null 
       }; 
       var options = $.extend(defaults, options); 

       return this.each(function() { 
        alert($selector.attr('id')); 
       }); 
      }; 
     })(jQuery); 

     $('body').demonstration({ $selector: $('#canvas') }); 
+0

Вы сделали то, что я сделал бы, хотя я бы удалил skanky $ с начала $ selector (см. Мой комментарий ниже: P) и, вероятно, установил значение селектора $ по умолчанию $ (this), а не null. – Matt

ответ

4

Селектор это не более, чем строка. Пока вы завершаете любой доступ к вызову jQuery() ($), люди могут передавать практически все (селекторная строка, объект jQuery, элемент DOM и т. Д.)

Редактировать: увидел, что вы добавили код , в этом случае вы должны получить к нему доступ $(options.$selector).attr('id').

Из любопытства, почему $ перед селектором?

+0

Потому что это то, что я вижу, как все остальные используют. Не знаю, почему они его используют. Я javascript отсталый и все еще изучаю. – Ciel

+0

@Stacey & Matti: Некоторые люди используют его для обозначения того, какие из переменных имеют объекты jQuery. Я ненавижу его лично: P – Matt

+0

Хорошо, у меня есть вопрос. Можно ли сразу передать два значения? Такие, что $ ('body'). Демонстрация ('selector', 'something else'). Однако моя цель состоит в том, чтобы передать больше, чем просто один селектор. Есть идеи? – Ciel

Смежные вопросы