ugrás a tartalomhoz

JS alert() és confirm() függvények felüldeffiniálása

atlanta · 2010. Jún. 1. (K), 16.35
Sziasztok!

Szeretnék kérni tőletek egy kis egyítséget!

Felül szeretném írni az alert() és confirm() JS függvényeket!
Jelen pillanatban:
alert('szöveg') -> megjeleníti a "weblap hibaüzenetet" ami az eredeti -> vele együtt megáll az oldal betöltődése;
aztán
function alert(szoveg)
{
$('alert_div').innerHTML = szoveg;
$('alert_div').style.display = 'block';
}

ezután alert('szöveg') -> megjelenik a saját alert_div-em ez eddig ok
de hogy állítom meg a weblap betöltődést?

mert ugye ha ua ezt akarom megcsinálni a comfirm()-mal mondjuk egy törlés elött.. hiába írja ki nekem az h biztos törlöd, mire válaszol az ember már letörölte...

Szóval van vkinek egy jó ötlete?

Üdv Atlanta
 
1

Egyszerű: ne töröld le

presidento · 2010. Jún. 1. (K), 18.00
Kiírod neki, hogy tényleg le akarja-e törölni, és nem csinálsz semmit.
AMIKOR az igen-re kattint, akkor törlöd.

Ehhez amúgy is hozzá kell szoknod JS alatt, mert alapvetően esemény vezérelt nyelv. Az oldal betöltése egy esemény, amire lefut a scripted – elejétől végéig. Amikor a felhasználó választ, az is egy esemény, és arra újra reagálni kell. Ennek is megvan a szépsége. :)
2

Megállítani?

Poetro · 2010. Jún. 1. (K), 18.21
Nem tudom, miért szeretnéd az oldal töltődését megállítani, de rengeteg módszer létezik, amivel végre lehetne hajtani a te confirm függvényedet, csak először is tudni kellene, mit szeretnél PONTOSAN csinálni. Például ha egy linkre kattintva szeretnéd csak akkor végrehajtani a link valódi feladatát ha már leellenőrizte hogy tényleg azt szeretné:
  1. $('#link').click(function () {  
  2.   return confirm.call(  
  3.     this,             // Átadjuk a context-et  
  4.     "Press a button"// Ez lesz a confirm üzenete  
  5.     function () {     // Ez hajtódik végre ha tényleg elfogadta.  
  6.       window.location.href = this.href;  
  7.     }  
  8.   );  
  9. });  
  10. $('#confirm_div').hide();  
  11.   
  12. function confirm(text, callback) {  
  13.   var confirm = $('#confirm_div').show(),  
  14.       that = this;  
  15.   confirm.find('#confirm_div_text').html(text);  
  16.   confirm.find('#confirm_div_ok').click(function (event) {  
  17.     event.preventDefault();  
  18.     confirm.hide();  
  19.     // Meghívjuk az eredeti callbacket a megfelelő contextusban  
  20.     callback.call(that);  
  21.   });  
  22.   confirm.find('#confirm_div_cancel').click(function (event) {  
  23.     event.preventDefault();  
  24.     confirm.hide();  
  25.   });  
  26.   return false;  
  27. }  
3

ezt meglesem és

atlanta · 2010. Jún. 1. (K), 23.50
ezt meglesem és kipróbálom....
egyébként már régóta foglakozok jssel.. de eddig ennyire mélyen nem másztam bele :D
4

Nos bocsi a lassú

atlanta · 2010. Jún. 4. (P), 00.23
Nos bocsi a lassú válaszért... egy verseny miatt voltam ily eltűntnek mondható.
lenne egy kérdésem....
$('#confirm_div').hide(); ez alatt te mit értesz?
mert ha $() függvény nálam return document.getElementById(object)
confirm divre hogy írjak hide() metódust? mert az ugyebár egyenlő a style.display = 'none'/block.... viszont ha jól tudom egyes böngészők nem szeretik :s
5

jQuery

Poetro · 2010. Jún. 4. (P), 00.43
Oh, én jQuery kódnak néztem, de a működést ettől függetlenül ki tudod találni.