Po invalidaci snippetu se datepicker js deaktivuje + diagnostics.dumps
- Tomáš Votruba
- Moderator | 1114
1. Používám aktuální verzi nette.ajax.js Po obnovení snippetu mi přestane fungovat datepicker, který je aktivován pomocí:
$("input.date").each(function () {
// ...
}
Myslím, že jsem jako záplatu tohoto problému používat
livequery
, ale tomu se chci vyhnout. Kdyby to šlo upravit přímo
ve snippetu (tedy že by to umělo i unfriendly zápis používaných
souborů), bylo by to super.
2. Případně jak funguje přesně funguje rozšíření diagnostics.dumps? Tedy jak ho zapnout a používat.
Díky a dobrou chuť, pokud právě obědváte :)
- Marek Šneberger
- Člen | 130
Měl jsem stejný „problém“.
Stačilo ve snippetu znovu nabindovat datepicker. Řešení to asi není moc OK,
ale pomohlo mi :)
- Vojtěch Dobeš
- Gold Partner | 1316
Děkuji za přání, převedu si ho k večeři :). Trik je přeci v použití rozšíření:
$.nette.ext('datepicker', {
load: function () {
$("input.date").each(function () {
// ...
});
}
});
Callback v load
události se provede po každém úspěšném
požadavku. Jen je třeba si dát pozor, aby se nějaké události zbytečně
nebindovaly vícekrát.
- Marek Šneberger
- Člen | 130
@vojtech.dobes: To mě nenapadlo, a přitom tvůj ajax plugin používáme :) Ještě dnes vyzkouším, díky!
- Tomáš Votruba
- Moderator | 1114
@vojtech.dobes: Díky, funguje. Jde to řešit nějak rozumně než obalovat veškeré věci, které chci takto použít, do zmíněné klauzule?
Něco jako toto? :)
$.nette.ext('datepicker', {
load: function () {
$("input.date").each(function () {
// includni originalni nezivy .js
});
}
});
Editoval Schmutzka (23. 7. 2013 11:03)
- Vojtěch Dobeš
- Gold Partner | 1316
No, vzhledem k možnostem a syntaxi Javascriptu pochopitelně ne :).
Pomoci může nástroj typu require.js
, ale pochopitelně nikdy
to nebude fungovat takto out-of-box. Bohužel. Nejlepší je, když „neživý
.js“ nabízí vhodné rozhraní, a stačí si vytvořit maličkou extenzi,
která s tímto API bude pracovat. Něco jako datepicker.init();
nebo datepicker.initInElement(el);
.