Как запустить пользовательскую функцию для элемента jQuery? - PullRequest
2 голосов
/ 17 сентября 2011

Как мне этого добиться?

$(".my_selected .element").myCustomFunction();

или, может быть, даже просто это?

$(".my_selected .element").???????(myCustomFunction());

Где функция узнает, что $(this) равно $(".my_selected .element").

Спасибо!

Ответы [ 5 ]

3 голосов
/ 17 сентября 2011
$.fn.myCustomFunction = function(){
    // this or $(this) is $(".my_selected .element")

}
3 голосов
/ 17 сентября 2011

Написать плагин: http://docs.jquery.com/Plugins/Authoring

1 голос
/ 18 сентября 2011

Звучит так, будто вам нужна каждая функция, если вы не говорите о написании плагина jQuery. Если вы знаете, что все ваши предметы, возвращенные из селектора, поддерживают функцию, вы можете просто сделать что-то вроде.

$('li').each(function(index) {
    alert(index + ': ' + $(this).text());
});

Дополнительная информация об этом подходе jQuery http://api.jquery.com/each/

1 голос
/ 17 сентября 2011

Используйте код ниже, см. Рабочую демонстрацию здесь

(function( $ ){
  $.fn.myCustomFunction= function() {

    alert($(this).html());

  };
})( jQuery );

$(".my_selected .element").myCustomFunction();

Это простой способ расширения jQuery

1 голос
/ 17 сентября 2011

Вы расширяете функциональность jQuery, добавляя свою собственную функцию следующим образом:

jQuery.fn.myCustomFunction = function() {

};

Ключевое слово this работает, как и предполагалось, внутри функции, если я правильно помню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...