2013-06-21 3 views
1

СПродлить JQuery указанный объект с пользовательской функции

$.fn.customFunction = function(){}; 

мы можем расширить весь Jquery и использовать его:

$('body').customFunction(); 

Можно ли продлить только указанный элемент, как:

var elem = $('#elem'); 
    elem.fn.customFunction = function(){}; 

elem.customFunction();  // function is called 
$('body').customFunction(); // this call should cause error 

ответ

5

Вы хотите, чтобы функция была доступна на этом одном объекте? Это достаточно легко:

Обратите внимание, что это будет работать только на этой функции. Это, к примеру, не будет работать:

$('#elem').customFunction(); 

Это происходит потому, что конструктор JQuery делает новый объект каждый раз, когда он запускается; он не повторно использует объекты.

+0

Ой, я был ослеплен с 'prototype'. Благодаря ! – hsz

+0

Хорошо, и если я хотел бы повторно использовать эту функцию позже с созданием объекта снова? \ – hsz

+0

Путь jQuery состоял бы в том, чтобы функция существовала для всех элементов, но только делала что-либо на том, что вы имеете в виду. – lonesomeday

5
var elem = $('#elem'); 
elem.customFunction = function(){}; 

Удалить fn.

Это также может быть использован в нормальных элементов (или любого другого объекта, по этому вопросу):

var elem = document.getElementById('elem') 
elem.customFunction = function(){} 
Смежные вопросы