Проблема с самописанным плагином.
Написал плагинчик 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, время: 10:03. |