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é:

    $('#link').click(function () {
      return confirm.call(
        this,             // Átadjuk a context-et
        "Press a button", // Ez lesz a confirm üzenete
        function () {     // Ez hajtódik végre ha tényleg elfogadta.
          window.location.href = this.href;
        }
      );
    });
    $('#confirm_div').hide();

    function confirm(text, callback) {
      var confirm = $('#confirm_div').show(),
          that = this;
      confirm.find('#confirm_div_text').html(text);
      confirm.find('#confirm_div_ok').click(function (event) {
        event.preventDefault();
        confirm.hide();
        // Meghívjuk az eredeti callbacket a megfelelő contextusban
        callback.call(that);
      });
      confirm.find('#confirm_div_cancel').click(function (event) {
        event.preventDefault();
        confirm.hide();
      });
      return false;
    }
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.