У меня есть собственный плагин для настройки нескольких вещей при использовании диалога jquery-ui. Вместо звонка:
$("#popup").dialog(options);
Я использую это:
$("#popup").dialogPlugin(options);
И dialogPlugin будет вызывать .dialog(options)
(после выполнения некоторых действий).
В моем плагине я могу изменить некоторые функции для событий диалога следующим образом:
var originalCloseFn = options.close;
options.close = function() {
//my own stuff.
originalCloseFn();
};
Плагин отлично работает, но через некоторое время, используя его, я понял, что не могу изменить функции диалога извне плагина следующим образом:
$("#popup").dialog("option", "close", newFunctionOnClose);
Если я сделаю это, код, добавленный плагином к функции закрытия, будет потерян.
Итак, я добавил этот код в начале моего плагина:
if (options == "option") {
if (val == undefined)
return _this.dialog("option", name);
else
return _this.dialog("option", name, val);
}
Теперь мне нужно изменить пятую строку этого кода, чтобы фактически изменить параметры моего плагина, а не jquery-ui. (Опция функции .dialogPlugin
, а не .dialog
). Я действительно не знаю, как я могу это сделать. Есть идеи, пожалуйста?
Редактировать
Я знаю, что вопрос не очень ясен, и мой плохой английский не позволяет мне больше объясняться, поэтому я сделал пример .
Я хочу, чтобы в седьмой строке (return $(this).dialog("option", name, val);
) вместо модификации (эквивалентной optionsForJQuery.close
) изменилось options.close
. Таким образом, я не буду кодировать поведение плагинов.