| 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: 14 let
|
|||
0