potvrdenie udalosti handle – ajaxovo
- duskohu
- Člen | 778
Caute viete mi poradit mam handle ktory maze zaznam,
a na odkaz mam naviazanu udalost ktora vyvola potvrdenie:
<a n:href="deleteTask!" data-confirm="Opravdu chcete smazat záznam?" class="ajax">Zmazat</a>
$(function () {
$.fn.extend({
triggerAndReturn: function (name, data) {
var event = new $.Event(name);
this.trigger(event, data);
return event.result !== false;
}
});
$('a[data-confirm], button[data-confirm], input[data-confirm]').live('click', function (e) {
var el = $(this);
if (el.triggerAndReturn('confirm')) {
if (!confirm(el.attr('data-confirm'))) {
return false;
}
}
});
});
pouzivam nette.ajax.js,
vsetko ide ok, len pod ajaxom mi to rovno vymaze, nebude to tym ze to mam
umiestnene v header?
a invalidujem len cast stranky?
ps: nenapada niekoho ako sa vyhnut live()?
nejaky napad?
dakujem.
- Vojtěch Dobeš
- Gold Partner | 1316
Pokud ti nevadí, že se bude potvrzování kontrolovat jen u ajaxových odkazů, můžeš to vyřešit pomocí rozšíření:
$.nette.ext('confirm', {
before: function (settings, ui) {
var confirmation = $(ui).attr('data-confirm');
return confirmation ? confirm(confirmation) : true;
}
});
Pozor, upozornění vzhledem k tvému kódu: nette.ajax.js
ve výchozím stavu neajaxuje <button>
.
Pokud to chceš i pro neajaxové odkazy a nechceš použít
live()
(což je dobře), tak opět rozšíření (musí být
zavolané před $.nette.init()
):
$.nette.ext('ultimate-confirm', {
load: function () {
$('a[data-confirm], button[data-confirm], input[data-confirm]').click(function (e) {
var confirmation = $(this).attr('data-confirm');
return confirmation ? confirm(confirmation) : true;
});
}
});
- JakubTN
- Bronze Partner | 49
Pouzivam rovnake riesenie, konkretne druhu navrhnutu variantu od @vojtech.dobes a mam problem s tym, ze ked vyskoci alert s potvrdenim, zaznam sa vymaze aj po kliknuti na Cancel.
Neviete kde moze byt problem? Dakujem.
EDIT: Kto hlada, najde :)
Editoval JakubTN (25. 10. 2012 0:32)