Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2013, 15:15
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Кастомный метод для элемента выборки.
Выбираю элемент $('#someid') или несколько элементов по классу $('.someclass') Мне нужно для элементов в этой выборке реализовать метод, например $('.someclass').ColorIt() , которым потом будет раскрашиватся текст инпута во все цвета радуги (задача взята от балды)

Не хочу делать этот метод глобальный, потому что на любом элементе он может и не сработать, нужно чтобы жтот метод работал только на элементах из выборки $('.someclass')

как это сделать ?
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2013, 15:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,030

Сообщение от Casufi
чтобы жтот метод работал только на элементах из выборки $('.someclass')
помедленнее ... если вы сделали выборку откуда в ней возьмутся иные элементы?
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2013, 16:43
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

например так

http://jsfiddle.net/zJng4/
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2013, 16:56
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Яростный Меч,
Это обычный плагин для JQuery. Дело в том, что для некоторых елементов метод ColorIt не имеет смысла, например, если выберем скрытый input, то раскрашивать нам его не смысла
$('input[type=hidden]').ColorIt(); не сработает.
Я бы хотел не объявлять сначала метод ColorIt а потом привязывать его к элементу, а сразу на элементе сделать реализацию метода.
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2013, 16:59
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Что то вроде

$('div').fn.ColorIt = function() {
    this.filter(".a").each(function() {
        $(this).css("color", "red");
    });
};
Ответить с цитированием
  #6 (permalink)  
Старый 26.09.2013, 17:21
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от Casufi
сразу на элементе сделать реализацию метода.
это можно (хотя непонятно зачем):
var divs = $('div');
divs.ColorIt = function() {
    this.filter(".a").each(function() {
        $(this).css("color", "red");
    });
};

divs.ColorIt();


только учти, что для другой выборки $('div') этого метода уже не будет.
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2013, 17:31
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Спасибо, это то что нужно
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2013, 17:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,030

а почему не
var divs = $('div .a');
divs.ColorIt = function() {
        $(this).css("color", "red");
};
divs.ColorIt();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск классов внутри тега yozuul jQuery 24 14.06.2013 21:00
Селектор для элемента, в имени которого присутствует символ "\" Прапорщик Задов jQuery 1 13.06.2013 16:33
эмуляция события click для элемента select Polo Events/DOM/Window 4 16.12.2009 12:29
Применение функции для каждого элемента sergeygerasimov jQuery 2 26.11.2008 10:15