Я пытаюсь добавить пользовательский плагин jquery. Но я получаю ошибку jQuery (...). Терминатор не является функцией .... Я уверен, что ошибок нет в кодеjQuery пользовательский плагин в joomla не работает
Для просто теста я попытался скопировать код с изучения. jquery.com
(function($) {
$.fn.greenify = function() {
this.css("color", "green");
return this;
};
}(jQuery));
, а затем
jQuery('..').greenify();
который возвращает меня ошибка JQuery ('..'). greenify не является функцией
Что происходит ??? Кто-нибудь знает причину этого?
EDIT
больше код. Это зеленоватая вещь была просто для того, чтобы показать, что она не работает на стандартном примере ....
фактический плагин ... Он размещен в настоящее время только в том же файле, где позже он называется на ellements, поэтому проблем нет с файлом не найден ..
(function($) {
$.fn.termifier = function(options) {
options = $.extend({
lookupResource: 'getTerm',
flyoutClass: 'lookerUpperFlyout'
},options||{});
this.attr('title','Click me for my definition!');
return this.click(function(event){
$.ajax({
url: options.lookupResource,
type: 'get',
data: {term: this.innerHTML},
dataType: 'html',
success: function(data) {
$('<div></div>')
.css({
position: 'absolute',
left: event.pageX,
top: event.pageY,
cursor: 'pointer',
display: 'none'
})
.html(data)
.addClass(options.flyoutClass)
.click(function(){
$(this).fadeOut(1500,function(){$(this).remove();});
})
.appendTo('body')
.fadeIn();
}
});
return false;
});
};
}(jQuery));
jQuery(document).ready(function(){
...
jQuery('abbr').termifier({
lookupResource: 'some.php'
});
});
Я довольно невежествен ...
Спасибо! Ваш ответ сработал! Я включил плагин внутри документа, и он работает ... Но я до сих пор не понимаю, почему. Это должно нормально работать, если оно установлено за пределами дома? И в случае, если я хочу загрузить его отдельно в другом файле ??? –
Joomla использует Mootools, поэтому '' ', который мы обычно используем, иногда вызывает конфликты между сценариями jQuery и Mootools. Вот почему мы используем 'jQuery' как глобальную область и' $ 'только как псевдоним. Это не будет работать за пределами DOM Ready, потому что это плагин jQuery. – Lodder
Да, я понимаю, поэтому мы используем функцию noConflict(), которая также является стандартной частью jdoc: include type = "head".) После использования этого функцию вы не можете использовать $, чтобы вызывать jQuery в любом случае, вы не должны указывать его как jQuery. Вот почему мы помещаем jQuery (document) .ready() .... вместо $ (document) .ready(). Но если я поместил jQuery.fn.greenify = .... заменил все псевдонимы на jQuery - это тоже не будет работать вне jQuery (document) .ready() ... вот что меня озадачило. Может ли это быть проблемой конфликта в namespacies ???? –