Сайт, над которым я работаю, использует своего рода трюк для загрузки и инициализации всех элементов.Основная идея заключается в следующем фрагменте jQuery:
$(document).ready(function() {
$.fn.plugins = function() {
$('.plugins', this).each(function() {
var data, elem, name, value;
elem = $(this);
data = elem.data();
for (name in data) {
value = data[name];
if (name in $.fn) {
elem[name](value);
}
}
});
};
});
С этим я могу сделать следующее в HTML-документе в качестве примера:
<div id="dialog-add" class="plugins" data-dialog='{ "autoOpen": false }'>
Обычно я использую его сплагин valitor вот так:
<form class="plugins" data-valitor="">
Довольно круто, за исключением того, что я столкнулся с очень странной ошибкой в jQuery ui 1.8.13.В Firefox 4.0.1 я получаю сообщение об ошибке «l.option не является функцией», когда вы запускаете диалоговое окно.
Вы можете увидеть проблему вживую здесь: http://jsbin.com/umafo4/9 (edit: http://jsbin.com/umafo4/9/edit)
Понятия не имею, почему происходит сбой
[Редактировать] Кажется, это как-то связано с диалогом данных и что имя атрибута данных совпадает с именем методаи все же это работает, когда я называю это за рамками ...