Różnica między jQuery.extend i jQuery.fn.przedłużyć?
Próbuję zrozumieć składnię wtyczki jquery, ponieważ chcę połączyć dwie wtyczki w jeden. Migacz, który również musi być w stanie zatrzymać interwał de lub uruchomić kilka razy.
Anyway, czy ta składnia jest taka sama jak
jQuery.fn.extend({
everyTime: function(interval, label, fn, times) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, times);
});
},
oneTime: function(interval, label, fn) {
return this.each(function() {
jQuery.timer.add(this, interval, label, fn, 1);
});
},
To
$.fn.blink = function(options)
{
Ponieważ wygląda na to, że pierwszy (Bez =) jest sposobem na ustawienie wielu metod jednocześnie. Czy to prawda? Również, gdy tu jestem Jaki byłby powód, aby dodać elementy i trochę logiki do jquery obiekt?
jQuery.extend({
timer: {
global: [],
guid: 1,
dataKey: "jQuery.timer",
(to jest z wtyczki timer)
Dzięki, Richard.]}5 answers
JQuery.extend służy do rozszerzenia dowolnego obiektu o dodatkowe funkcje, ale jQuery.fn.extend służy do rozszerzenia jQuery.obiekt fn, który w rzeczywistości dodaje kilka funkcji wtyczki za jednym zamachem (zamiast przypisywania każdej funkcji osobno).
JQuery.extend :
var obj = { x: function() {} }
jQuery.extend(obj, { y: function() {} });
// now obj is an object with functions x and y
JQuery.fn.extend :
jQuery.fn.extend( {
x: function() {},
y: function() {}
});
// creates 2 plugin functions (x and y)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-02 10:36:59
jQuery.extend({
abc: function(){
alert('abc');
}
});
Użycie: $.abc()
. (Nie jest wymagany selektor jak $.ajax()
.)
jQuery.fn.extend({
xyz: function(){
alert('xyz');
}
});
Użycie: $('.selector').xyz()
. (Selektor wymagany jak $('#button').click()
.)
Głównie służy do implementacji $.fn.each()
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-24 16:33:03
Różnica między jQuery.extend i jQuery.fn.przedłużyć?
Właściwie, nie ma żadnego poza ich bazowym odniesieniem. W źródle jQuery możesz przeczytać:
jQuery.extend = jQuery.fn.extend = function() { … };
Jak to działa? dokumentacja brzmi:
Scala zawartość dwóch lub więcej obiektów razem w pierwszy obiekt.
To tylko for-in-loop, który kopiuje właściwości, pimpowane flagą, aby rekurencyjnie zagnieżdżać obiekty. I inni cecha:
Jeśli do
$.extend()
zostanie dostarczony tylko jeden argument, oznacza to, że argument docelowy został pominięty
// then the following will happen:
target = this;
Więc jeśli funkcja jest wywołana na jQuery
(bez jawnego celu), rozszerzy przestrzeń nazw jQuery. A jeśli funkcja jest wywołana na jQuery.fn
(bez jawnego celu), rozszerzy obiekt prototypowy jQuery, w którym znajdują się wszystkie metody (wtyczki).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-11 20:04:05
Ten wpis na blogu ma ładny opis:
$.fn.extend({
myMethod: function(){...}
});
//jQuery("div").myMethod();
$.extend({
myMethod2: function(){...}
});
//jQuery.myMethod2();
Cytaty:
ogólnie rzecz biorąc, należy rozszerzyć obiekt jQuery o funkcje i jQuery.obiekt fn dla metod. Funkcja, w przeciwieństwie do metody, nie jest dostępna bezpośrednio z DOM.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-13 12:10:31
$.fn.something= function{};
Wskazuje na jQuery.prototype i umożliwia dostęp do elementów dom poprzez "this". Teraz u może używać $(selector).something();
więc to działa jako funkcja plugin jak $(selector).css();
$.something = function{};
Dodaje właściwość lub funkcję do samego obiektu jQuery i u nie można użyć "this" dla dostępu do dom
Teraz u może używać go jako $.something()
; działa to jako funkcja użytkowa jako $.trim()
Ale
$.fn.extend({function1(), function2()}) and $.extend({function1(), function2()})
Umożliwia dodanie więcej niż 1 funkcji w tym samym czasie.Mogą być również używane do łączenia dwóch literałów obiektów w przypadku, gdy zapewniamy więcej niż jeden obiekt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-18 03:20:47