Autor | Zpráva | ||
---|---|---|---|
jQuery Profil * |
#1 · Zasláno: 25. 2. 2012, 18:54:19
Zdravím, mám toto HTML:
<a href="smazat.php?id=a" title="Opravdu smazat a?" class="jquerydotaz">smazat A</a> <a href="smazat.php?id=b" title="Opravdu smazat b?" class="jquerydotaz">smazat B</a> <a href="smazat.php?id=c" title="Opravdu smazat c?" class="jquerydotaz">smazat C</a> Chtěl bych pomocí jQuery vytvořit dialog s dotazem, zda si uživatel přeje konkrétní záznam smazat, po kliknutí na odkaz smazat A, smazat B atd. Ovšem chtěl bych to pomocí dialogu ve kterém bude text převzat z atributu a href -> title, dialog aby měl tlačítka OK, STORNO. Pokud se klikne na OK aby se provedlo přesměrování na hodnotu atribudu a href, jinak se pouze dialog zavře a nic se neprovede. Pomůže mi někdo prosím? |
||
Chamurappi Profil |
#2 · Zasláno: 25. 2. 2012, 19:16:45
Reaguji na jQueryho:
Proč by ten text měl být zrovna v atributu title ? Vyjadřuje potvrzující otázku, ne popis cíle odkazu.
Na tvém místě bych použil normální onclick="return !confirm('Opravdu smazat …')" . Nevidím důvod k dodatečnému přiřazování onclick ů a lovení textu z atributu, do kterého nepatří…
|
||
jQuery Profil * |
#3 · Zasláno: 25. 2. 2012, 19:28:10
Důvodem pro použití jQuery je sjednocení vzhledu, dialogy prohlížeče nelze vzhledově modifikovat. Tak jak píšeš by bylo vše jednodušší, ale všechny ostatní dialogy jsou přes jQuery.
|
||
Chamurappi Profil |
#4 · Zasláno: 25. 2. 2012, 19:30:26
Reaguji na jQueryho:
Tak si tam místo confirm napiš jméno vlastní funkce, která ti otevře dialogové okno podobné těm ostatním.
„dialogy prohlížeče nelze vzhledově modifikovat“ Což je plus pro uživatele, aspoň se v nich vyzná. |
||
jQuery Profil * |
#5 · Zasláno: 25. 2. 2012, 23:28:51
Kdyby to stejně někdo hledal tak se to dá i takto (snad jsem to udělal dobře):
<a href="smazat.php?id=a" title="Smazat položku A" class="jquerydotaz">smazat A</a> <a href="smazat.php?id=b" title="Smazat položku B" class="jquerydotaz">smazat B</a> <a href="smazat.php?id=c" title="Smazat položku C" class="jquerydotaz">smazat C</a> <script type="text/javascript"> $(document).ready(function(){ $(".jquerydotaz").click(function(e) { e.preventDefault(); thisHref = $(this).attr("href"); thisTitle = $(this).attr("title").toLowerCase(); var $dialog = $("<div></div>").dialog(); $dialog.html("Skutečně si přejete "+thisTitle+" ?"); $dialog.dialog({ bgiframe: true, autoOpen: false, title: "Dotaz", modal: true, width: 350, buttons: { 'Ano': function() { $( this ).dialog("close"); document.location = thisHref; }, 'Ne': function() { $( this ).dialog("close"); }} }) $dialog.dialog("open"); }); }); </script> |
||
Chamurappi Profil |
#6 · Zasláno: 26. 2. 2012, 00:13:23
Reaguji na jQueryho:
Kde máš var ?
Kdyby to někdo hledal, tak funkce dialog není z jQuery, ale z jQuery UI, což je baculatá líná příšera, kterou se nevyplatí načítat kvůli něčemu tak triviálnímu, jako je emulované dialogové okno.
|
||
jQuery Profil * |
#7 · Zasláno: 26. 2. 2012, 10:45:27
Tak tedy upravená verze:
HTML: <a href="smazat.php?id=a" title="Smazat položku A" class="jquerydotaz">smazat A</a> <a href="smazat.php?id=b" title="Smazat položku B" class="jquerydotaz">smazat B</a> <a href="smazat.php?id=c" title="Smazat položku C" class="jquerydotaz">smazat C</a> <script type="text/javascript"> $(document).ready(function(){ $(".jquerydotaz").click(function(e) { e.preventDefault(); var thisHref = $(this).attr("href"); var thisTitle = $(this).attr("title"); var prvniZnak = thisTitle.substring( 0, 1 ); var prvniZnak = prvniZnak.toLowerCase(); var mujText = thisTitle.substring( 1 ); var novyText = prvniZnak + mujText; var $dialog = $("<div></div>").dialog({ modal: true, bgiframe: true, title: "Dotaz", width: 350, buttons: { 'Ano': function() { $( this ).dialog("close"); document.location = thisHref; }, 'Ne': function() { $( this ).dialog("close"); }} }); $dialog.html("Skutečně si přejete "+novyText+" ?"); $dialog.dialog("open"); }); }); </script> |
||
Časová prodleva: 11 let
|
0