-
21. Data: 2013-10-10 09:06:00
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Neevor <p...@n...ru>
Marek wrote:
> Czy jest możliwość modyfikowania atrybutu inline'owego style poprzez
> podanie tekstu? Mam na myśli coś takiego:
>
chyba nie chce mi się pracować ;)
jQueryUI widgetFactory
pisany z głowy czyli z niczego i nie testowany ;P
var styleWizard={
options: { styles=[] },
_init: function(){
var tmp=this.element.attr('style').split(';');
for(var i=0; i<tmp.length; i++){
var sv=tmp[i].split('=');
this.options.styles.push( {name: sv[0], value: sv[1]} );
}
},
_getStyle: function(name, idxOnly){
for(var i=0; i<this.options.styles.length; i++)
if(this.options.styles[i][name]==name)
return idxOnly?i:this.options.styles[i];
return undefined;
},
_assignStyles: function(){
var stylestr='';
for(var i=0; i<this.options.styles.length; i++)
stylestr += this.options.styles[i]['name']+':
'+this.options.styles[i]['value']+';';
this.element.attr('style', stylestr);
},
getStyle: function(name){
return this._getStyle(name, false)['value'];
},
setStyle: function(name, value){
var idx=this._getStyle(name, true);
if(typeof idx === 'undefined')
this.options.styles.push( {name: name, value: value} );
else
this.options.styles[idx]['name']= value;
this._assignStyles();
},
setStyleStr: function(str){
var tmp=str.split(';');
for(var i=0; i<tmp.length; i++){
var sv=tmp[i].split('=');
this.setStyle(sv[0], sv[1]);
}
}
}
$.widget('neevor.styleWizard', styleWizard);
Pomijam sensowność takiego rozwiązania w jQuery skoro jest $elem.css()
ale co tam, wszystko jest lepsze od pracy c'nie ;P
--
GCA/ED d s+:++ a C++ ULA P+++ L+ E--- W+++ N+++ o+ K- w+++ O+ M+ V-
PS PE++ Y-- PGP- t-- 5-- X+ !tv R b+ DI-- D+ G e++ h--- r+++ z+++*
-
22. Data: 2013-10-10 09:08:17
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Neevor <p...@n...ru>
Marek wrote:
> Czy jest możliwość modyfikowania atrybutu inline'owego style poprzez
> podanie tekstu? Mam na myśli coś takiego:
>
chyba nie chce mi się pracować ;)
jQueryUI widgetFactory
pisany z głowy czyli z niczego i nie testowany ;P
var styleWizard={
options: { styles=[] },
_init: function(){
var tmp=this.element.attr('style').split(';');
for(var i=0; i<tmp.length; i++){
var sv=tmp[i].split('=');
this.options.styles.push( {name: sv[0], value: sv[1]} );
}
},
_getStyle: function(name, idxOnly){
for(var i=0; i<this.options.styles.length; i++)
if(this.options.styles[i]['name']==name)
return idxOnly?i:this.options.styles[i];
return undefined;
},
_assignStyles: function(){
var stylestr='';
for(var i=0; i<this.options.styles.length; i++)
stylestr += this.options.styles[i]['name']+':
'+this.options.styles[i]['value']+';';
this.element.attr('style', stylestr);
},
getStyle: function(name){
return this._getStyle(name, false)['value'];
},
setStyle: function(name, value){
var idx=this._getStyle(name, true);
if(typeof idx === 'undefined')
this.options.styles.push( {name: name, value: value} );
else
this.options.styles[idx]['name']= value;
this._assignStyles();
},
setStyleStr: function(str){
var tmp=str.split(';');
for(var i=0; i<tmp.length; i++){
var sv=tmp[i].split('=');
this.setStyle(sv[0], sv[1]);
}
}
}
$.widget('neevor.styleWizard', styleWizard);
Pomijam sensowność takiego rozwiązania w jQuery skoro jest $elem.css()
ale co tam, wszystko jest lepsze od pracy c'nie ;P
Edit: wracam do pracy, bo za dużo bugów w tym znajduję ;)
--
GCA/ED d s+:++ a C++ ULA P+++ L+ E--- W+++ N+++ o+ K- w+++ O+ M+ V-
PS PE++ Y-- PGP- t-- 5-- X+ !tv R b+ DI-- D+ G e++ h--- r+++ z+++*
-
23. Data: 2013-10-10 09:16:20
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: n...@t...net.pl
Myślałem, że chcesz generować listing.
Nie musisz niczego dodawać do stylu elementu bo te style nadali już
producenci przeglądarek z domyślnymi wartościami.
Jak dasz na www element
<div></div>
to zapewniam cię, że tam też jest: font, color, width...
Programista może tylko zmieniać wartości domyślne (nie tworzy ich)
np tak:
(kod dla IE)
<div id="d2" onClick="foo()">div2 - click me...</div>;
function foo()
{
d2.style.color="red";
d2.style.fontSize="40px";
}
Czyli user musi wywołać jakąś akcję aby zmienić styl.
Andrzej.
-
24. Data: 2013-10-10 15:29:42
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
W dniu 2013-10-10 05:02, u...@d...invalid pisze:
>
> Z pewnością Twoje rozwiązanie jest bardziej wydajne, ale czasem warto
> przedłożyć nad prostotę. Co do jQuery to 34kb (compressed), no a
> przeglądarki przecież to trzymają w cache, więc imo nie problem.
Nie porównuj moich możliwości finansowych do Allegro np :-) Ja już w tej
chwili za transfer płacę wiele tysięcy zł rocznie więc jeśli nie
potrzebuję wielkiej biblioteki, to jej nie używam. Mam własne,
wielokrotnie mniejsze. Różnica między 10 kB (compressed) a 34kB
(compressed) to sporo złotówek mniej.
A po drugie - trzymanie w cache JS przez przeglądarki działa tylko wtedy
gdy użytkownik już był na tej stronie. Nowych użytkowników mam
miesięcznie w tysiącach.
--
Pozdrawiam
Marek
-
25. Data: 2013-10-10 15:34:06
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
W dniu 2013-10-10 09:16, n...@t...net.pl pisze:
> Myślałem, że chcesz generować listing.
>
> Nie musisz niczego dodawać do stylu elementu bo te style nadali już
> producenci przeglądarek z domyślnymi wartościami.
Nie rozumiem? Chyba nie chcesz powiedzieć, że mam się cieszyć domyślnym
stylem jakiegokolwiek elementu?
>
> Czyli user musi wywołać jakąś akcję aby zmienić styl.
Niekoniecznie user, może timer w JS, może dynamicznie Ajax coś załadować
i zmienić. No ale do czego zmierzasz nie łapię? Nie widzę korelacji z
tematem dyskusji.
--
Pozdrawiam
Marek
-
26. Data: 2013-10-10 15:38:24
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
> Edit: wracam do pracy, bo za dużo bugów w tym znajduję ;)
A ja zalazłem w miedzyczasie najprostsze rozwiązanie i to bez stosowania
jQuery i innych złożonych metod. Wcześniej przeoczyłem dość istotną
właściwość obiektu style. Oto banalne rozwiązanie:
var mojeStyleInlineowe="color: red; font-weight: bold; ...";
element.style.cssText=mojeStyleInlineowe;
:-D
--
Pozdrawiam
Marek
-
27. Data: 2013-10-10 17:26:23
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Paweł Piskorz <n...@p...nie>
W dniu 2013-10-10 15:29, Marek pisze:
> Nie porównuj moich możliwości finansowych do Allegro np :-) Ja już w tej
> chwili za transfer płacę wiele tysięcy zł rocznie więc jeśli nie
> potrzebuję wielkiej biblioteki, to jej nie używam.
jQuery jak ma nie tylko własny CDN, ale jest dostępny na wielu innych,
więc o stransfer się martwić nie musisz.
--
Pozdrawiam,
Paweł "PablO" Piskorz
-
28. Data: 2013-10-10 23:52:18
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
W dniu 2013-10-10 17:26, Paweł Piskorz pisze:
>
> jQuery jak ma nie tylko własny CDN, ale jest dostępny na wielu innych,
> więc o stransfer się martwić nie musisz.
Ups... musiałem taką opcję przeoczyć. A czy nie spotka mnie jakaś
niespodzianka jak przy mapach Google, że przy jakieś ilości odsłon
serwer "powie" "spadaj albo zapłać" ?
--
Pozdrawiam
Marek
-
29. Data: 2013-10-11 08:24:25
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: n...@t...net.pl
W dniu czwartek, 10 października 2013 15:34:06 UTC+2 użytkownik Marek napisał:
> W dniu 2013-10-10 09:16, n...@t...net.pl pisze:
Sorry, czytając wszystkie posty coś mi się pomerdało,
że chcesz dodawać nowe style, sorry.
> > Czyli user musi wywołać jakąś akcję aby zmienić styl.
>
>
>
> Niekoniecznie user, może timer w JS, może dynamicznie Ajax coś załadować
>
> i zmienić. No ale do czego zmierzasz nie łapię? Nie widzę korelacji z
>
> tematem dyskusji.
>
Pisałeś, że styl ma zależeć od usera.
Ale najważniejsze, że już znalazłeś proste rozwiązanie.
Pozdrawiam
Andrzej.
-
30. Data: 2013-10-11 13:42:14
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Paweł Piskorz <n...@p...nie>
W dniu 2013-10-10 23:52, Marek pisze:
> W dniu 2013-10-10 17:26, Paweł Piskorz pisze:
>>
>> jQuery jak ma nie tylko własny CDN, ale jest dostępny na wielu innych,
>> więc o stransfer się martwić nie musisz.
>
> Ups... musiałem taką opcję przeoczyć. A czy nie spotka mnie jakaś
> niespodzianka jak przy mapach Google, że przy jakieś ilości odsłon
> serwer "powie" "spadaj albo zapłać" ?
O ile się nie mylę to GMaps ma taką licencję (limitowana ilość
wyświetleń dla wersji bezpłatnej), także poczytaj warunki wybranego
CDN-a aby się dowiedzieć czy mają jakieś limity.
--
Pozdrawiam,
Paweł "PablO" Piskorz