Почему array.concat(…) не изменяет массив?Jquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Почему array.concat(…) не изменяет массив?

Сообщение Anonymous »

Итак, я создал этот виджет jqueryui. Он создает div, в который я могу передавать ошибки. Код виджета выглядит следующим образом:

Код: Выделить всё

$.widget('ui.miniErrorLog', {
logStart: "[list]",   // these next 4 elements are actually a bunch more complicated.
logEnd:   "[/list]",
errStart: "[*]",
errEnd:   "",
content:  "",
refs:     [],

_create: function() { $(this.element).addClass( "ui-state-error" ).hide(); },

clear: function() {
this.content = "";
for ( var i in this.refs )
$( this.refs[i] ).removeClass( "ui-state-error" );
this.refs = [];
$(this.element).empty().hide();
},

addError: function( msg, ref ) {
this.content += this.errStart + msg + this.errEnd;
if ( ref ) {
if ( ref instanceof Array )
this.refs.concat( ref );
else
this.refs.push( ref );
for ( var i in this.refs )
$( this.refs[i] ).addClass( "ui-state-error" );
}
$(this.element).html( this.logStart + this.content + this.logEnd ).show();
},

hasError: function()
{
if ( this.refs.length )
return true;
return false;
},
});
Я могу добавлять в него сообщения об ошибках и ссылки на элементы страницы, которые будут переведены в состояние ошибки. Я использую его для проверки диалогов. В методе addError я могу передать один идентификатор или массив идентификаторов, например:

Код: Выделить всё

$( "#registerDialogError" ).miniErrorLog(
'addError',
"Your passwords don't match.",
[ "#registerDialogPassword1", "#registerDialogPassword2" ] );
Но когда я передаю массив идентификаторов, это не работает. Проблема в следующих строках (я думаю):

Код: Выделить всё

if ( ref instanceof Array )
this.refs.concat( ref );
else
this.refs.push( ref );
Почему этот конкат не работает. this.refs и ref являются массивами. Так почему же конкат не работает?

Бонус: делаю ли я еще что-нибудь глупое в этом виджете? Это мой первый.

Подробнее здесь: https://stackoverflow.com/questions/128 ... -the-array
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»