2014-02-11 2 views
0

Я создал функцию js с именем draw(), теперь возможно, что я могу вызвать этот метод, используя оператор . после того, как я получу элемент, используя $(...). Я имею в виду, мне нравится работать $(#myId).draw(). Сейчас он дает ошибку, как неопределенная функция. Как я могу заставить его работать?

+0

Вы хотите вызвать метод как функцию jquery? – RaviH

+0

@RaviH: да, как и методы по умолчанию. –

+0

Затем прочитайте о том, как написать плагин jquery и сделать его плагином jquery. – RaviH

ответ

1

Лучший способ добавить методы с использованием jquery.fn.extend (Как мы можем добавить несколько функций плагина в то время)

Пример кода выглядит

jQuery.fn.extend({ 
    draw: function() { 
    return this.each(function() { 
     // add code here to draw 
    }); 
    } 
}); 

После того, как вы добавите этот метод, вы можете использовать ниже код для вызова ваших рисовать метод на любом элементе JQuery

$("#myId").draw() 

Официальный Ссылка:jquery.fn.extend

+0

из интереса, есть ли причина, по которой 'fn.extend' лучше, чем' fn.draw = ... '? – roo2

+0

@Eru jQuery.fn.extend используется для расширения объекта jQuery.fn, который фактически добавляет несколько функций плагина за раз. –

+0

ahh Я вижу, вы добавляете целый объект. благодаря – roo2

3

Трудно сказать из вашего вопроса, но это звучит, как вы хотите создать JQuery плагин. Вы можете сделать это путем расширения $.fn:

$.fn.draw = function(){ 
    /* ... */ 
} 

Тогда вы можете позвонить, что против селектора:

$('#myId').draw(); 

Дополнительная документация здесь: http://learn.jquery.com/plugins/basic-plugin-creation/

1

Вы тусклый t для использования jQuery.fn.extend, задокументировано здесь http://api.jquery.com/jquery.fn.extend/.

$.fn.extend({ 
    draw: function() { 

    // do something to the jQuery object 
    return this; 

    } 
}); 

Теперь вы можете вызвать .draw на объект JQuery, созданный с $(...).

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