Мой Javascript не совсем готов, и я изо всех сил пытаюсь переопределить функцию в прилагаемом rails.js
.
Я хочу изменить способ обработки a[data-confirm]
, используя модальное диалоговое окно jQuery UI, а не ванильный javascript confirm()
.
Соответствующей функцией в rails.js
является allowAction(element)
. Если я определю это в другом файле, я могу успешно вызвать его из консоли firebug, но версия rails.js
по-прежнему вызывается из якорей с атрибутом data-confirm
.
Я думаю, это потому, что весь файл rails.js
обернут в:
(function($) {
...
})( jQuery );
Есть ли разумный способ переопределить эту функцию, без изменения поставляемого rails.js
?
Изменить:
Вызов в rails.js
на allowAction
заключен в .live
вызов:
$('a[data-confirm], a[data-method], a[data-remote]').live('click.rails', function(e) {
var link = $(this);
if (!allowAction(link)) return false;
if (link.attr('data-remote')) {
handleRemote(link);
return false;
} else if (link.attr('data-method')) {
handleMethod(link);
return false;
}
});
Я также пытался включить мой javascript до и после rails.js
, но безрезультатно.
Edit:
Итак, если я позвоню .die('click.rails')
, я смогу переопределить все событие click.rails
, но оригинальные функции handleRemote()
и handleMethod()
не будут вызваны.