potvrdenie udalosti handle – ajaxovo

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
duskohu
Člen | 778
+
0
-

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
+
0
-

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;
		});
	}
});
duskohu
Člen | 778
+
0
-

Super dakujem velmi pekne,
to prve riesenie funguje bez problemov,
akurat v tom druhom necaka na potvrdenie ANO/NIE ale odosle poziadavku GET rovno bez potvrdenia.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

@duskohu: Hm, mrknu na to, jak to vlastně nejlépe řešit.

JakubTN
Bronze Partner | 49
+
0
-

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)