Проблема с самописанным плагином.
Написал плагинчик jquery:
$.fn.informer = function(options){ // настройки по умолчанию var options = $.extend({ alertMessage: 'Внимание!', timeOut: 3000 },options); return this.each(function() { $('<div>', {id: 'informDIV', css: { zIndex: 10000, color: 'black', backgroundColor: '#ccc' }, html: alertMessage }).appendTo('body'); var hideInformer=setTimeout(function(){ $('#informDIV').hide(); }, timeOut); }); }; Вызываю из скрипта: $.informer({alertMessage: 'Внимание!', timeOut: 3000}); Предварительно подключил перед выводом файл jquery.informer.js В ответ получаю: Ошибка: $.informer is not a function Что может быть не так? |
$.fn.informer = function(options){то $.informer = function(options){ |
либо ваш плагин нужно вызывать так:
$(".elem").informer({alertMessage: 'Внимание!', timeOut: 3000}); |
Мде, предупреждения об ошибках пропали, а результата нет (ожидал увидеть появление дива с текстом внимание и исчезновение его через 3 секунды). Собственно, в firebug новоиспеченный див тоже отсутствует...
|
$.fn.informer = function(option){ var settings=$.extend({ alertMessage: 'Внимание!', timeOut: 3000 }, option); return this.each(function(){alert(alertMessage);}); }; Даже простейший вот такой плагин не работает. Что ж так сложно то все... |
<div class="test_div"></div> <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $.fn.informer = function(option){ var settings = $.extend({ alertMessage: 'Внимание!', timeOut: 3000 }, option); return this.each(function(){ alert(settings.alertMessage); }); }; $(".test_div").informer(); $(".blabla").informer(); // не сработает, потому что не найдет ни одного элемента с которым плаг может работать </script> |
Благодарю!)
|
$.fn.informer = function(option){ var settings=$.extend({ alertMessage: 'Внимание!', timeOut: 3000 }, option); return this.each(function(){ $(this).html(settings.alertMessage); setTimeout(function(){ $(this).hide(); }, settings.timeOut); }); } Блок с текстом появляется. А почему не получается его спрятать посредством setTimeout? Выдается ошибка a.ownerDocument is undefined |
$.fn.informer = function(option){ var settings=$.extend({ alertMessage: 'Внимание!', timeOut: 3000 }, option); return this.each(function(){ var self = this; $(this).html(settings.alertMessage); setTimeout(function(){ $(self).hide(); }, settings.timeOut); }); } |
Часовой пояс GMT +3, время: 22:38. |