FieldSet.titleCollapse

2012.03.11. 08:09 stack

Szeretem használni a FieldSet komponenst Checkbox-szal. (checkboxToggle: true) Jól látszódik, hogy a konténer és a komponensei között milyen viszony áll fent.

Hasznos, ha nem csak a checkbox-ra lehet kattintani, hanem a teljes cím kattintható. (titleCollapse: true) Ám sajnos ezzel a property-vel több probléma is van: 1. betesz egy teljesen felesleges és zavaró "toggle" ikont a checkbox és a cím közé. (igaz ez kikapcsolható: hideCollapseTool: true) 2. a checkbox elromlik, ami elég komoly probléma. :) A checkbox-ra kattintva is lefut a váltás, majd mivel a header komponensen is rajta van a kattintás figyelés, ezért mégegyszer lefut a váltás. Tehet az eredmény csupán egy villanás.

Szólj hozzá!

Címkék: title collapse toggle fieldset

Kivétel dobás

2012.03.01. 08:28 stack

Miután a lekezeletlen hibákat elkaptuk window.onerror segítségével, érdemes egy rövid bekezdést szentelni a kivételek dobására is.

Nem csak hiba objektumot, hanem tetszőleges értéket „eldobhatunk”.

throw new Error('Hiba'); illetve throw 'Hiba';

A legfőbb különbség, hogy az első tartalmazza, hogy melyik fájl, melyik sorában keletkezett, addig az utóbbi ilyen infókat nem tárol. (egyáltalán nem szükséges minden üzenetet becsomagolni egy Error objektumba, csupán érdemes tudni, hogy milyen következményekkel jár, ha csak stringet dobunk.)

Én az Ext.Error-t nem szoktam használni, kicsit feleslegesnek érzem.

Szólj hozzá!

Címkék: error throw

A tilde (~) operátor

2012.02.26. 10:48 stack

A ~ jelentése –(n + 1). Hogy egészen pontosak legyünk –1 * (parseInt(n, 10) || 0 + 1).
Elsőre nem tűnik túl használhatónak...

~1     // -2
~0     // -1
~-1    //  0
~false // -1
~true  // -2
~1.3   // -2
~0.9   // -1
~~42   // 42

Ám a következő példa után máris értelmet nyer:

var str = 'Szevasz';
if (~str.indexOf('asz')) {
    // szerepel benne...
}

Azaz leegyszerűsítve, a ~ megfelel a != -1 -nek.

Szólj hozzá!

Címkék: operator

Kliens oldali hibák naplózása

2012.02.18. 15:21 stack

Előzőleg a szerver oldali hibákat jelenítettük meg kliens oldalon, most a kliens oldali hibákat naplózzuk szerver oldalon!

Először is, a lekezeletlen hibákat a window.onerror felülírásával kaphatóak el:

window.onerror = function (errorMsg, file, line) {
    alert(errorMsg + ' - ' + file + ' (' + line + ')');
    return true;
};
var a = 1;
a();

Érdekesség, míg a kattintás esemény során a hamis visszatérési érték, addig a hiba eseménynél az igaz visszatérési érték szükséges ahhoz, hogy az adott esemény ne fusson tovább.

Szólj hozzá!

Címkék: javascript log error

2 Firefox

2012.02.03. 08:23 stack

Azért az vicces tud lenni, hogy egy magukat innovatívnak nevező multicégnél 3.6.8-as Firefox-ot használnak. (a héten jött ki a 10-es verzió)

Először megpróbáltam őket meggyőzni, hogy talán frissíthetnének. Ám miután ez kudarcba fulladt, nem maradt más, minthogy magamhoz is feltelepítem a régi verziót:

2 komment

Címkék: firefox

*:visible

2012.01.15. 15:03 stack

Nem tudom, hogy ezek a függvények miért nem alapértelmezettek?

Ext.DomQuery.pseudos.visible = function (list) {
    var result = [];
    for (var i = 0, len = list.length; i < len; i++) {
        if (Ext.fly(list[i]).isVisible()) {
            result.push(list[i]);
        }
    }
    return result;
};
Ext.DomQuery.pseudos.hidden = function (list) {
    var result = [];
    for (var i = 0, len = list.length; i < len; i++) {
        if (!Ext.fly(list[i]).isVisible()) {
            result.push(list[i]);
        }
    }
    return result;
};

Szólj hozzá!

Címkék: element visible pseudo

Szerver oldali hibák megjelenítése

2012.01.07. 10:06 stack

Ha a szerver oldali hibákat nem kezeljük le külön, akkor nehézkes az Ajax hívások között megtalálni, hogy pontosan hol is vesztettük el az irányítást. IE alatt kifejezetten rémálom.
Nem várt elem: ')' a 4816-os sorban. Ha nem használtad még kellően sokat az ExtJS-t, akkor nem biztos, hogy beugrik ebből, hogy itt bizony JSON parser hiba lépett fel. :) A JSON hiba meg nem azért történt, mert a kliens ne tudná feldolgozni az JSON adatokat, hanem mert az adatok helyett valójában egy hibaüzenet érkezett.

Vegyünk egy egyszerű példát. Két szám hányadosát szeretnénk szerver oldalon kiszámolni. (hosszú gondolkodás után ez volt a legegyszerűbb példa:)

Kliens oldalon:

Ext.Ajax.request({
    url: 'osztas.php',
    params: {
        a: 6,
        b: 2
    },
    success: function (response) {
        var t = Ext.decode(response.responseText);
        Ext.Msg.alert('', t.a + ' / ' + t.b + ' = ' + t.hanyados);
    }
});

Szerver oldalon:

die(json_encode(array(
    'a' => $_REQUEST{'a'},
    'b' => $_REQUEST{'b'},
    'hanyados' => $_REQUEST{'a'} / $_REQUEST{'b'}
)));

Tökéletesen működő példaprogram. :)
Ám, ha a második paraméter helyére nullát írunk, akkor jönnek a problémák...

Először a szerver oldalt egészítsük ki:

Szólj hozzá!

Címkék: ajax server error

Karácsonyi üdvözlet

2011.12.25. 08:37 stack

Mindenkinek nagyon boldog karácsonyt!

 

Szólj hozzá!

Címkék: off

Array.sort

2011.12.20. 10:27 stack

Csak emlékeztetőként... :)

var list = [10, 1, 5];
list.sort();
console.log(list); // [1, 10, 5]
list.sort(function (a, b) {return a-b;});
console.log(list); // [1, 5, 10]

Szólj hozzá!

Címkék: sort array

-moz-none

2011.11.03. 19:20 stack

Mindig is rossz szemmel néztem azokra a CSS törekvésekre, amelyben a böngészőgyártók saját prefixeket használnak a szabványos megoldás helyett. -moz-box-shadow és társai.

Na, de hogy a -moz-user-select: none ne ugyanazt jelentse,
mint a -moz-user-select: -moz-none az már valahol röhej.

<div style="-moz-user-select: none;">
    Nem kijelölhető szöveg.<br />
    <textarea>
        Szerbusz
        világ!
    </textarea>
</div>

Szólj hozzá!

Címkék: firefox napi szívás textarea

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?

süti beállítások módosítása