-
11. Data: 2013-10-09 18:25:30
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: NotBear <p...@i...pl>
W dniu 2013-10-07 15:19, Marek pisze:
> Czy jest możliwość modyfikowania atrybutu inline'owego style poprzez
> podanie tekstu? Mam na myśli coś takiego:
>
> var dodatkowyCSS="color:red; font-weight: 400";
Zakladajac, ze faktycznie nie da sie operowac zamknietym katalogiem
stylow poprzez przydzielanie odpowiedniej klasy lub kilku, zastanawiam
sie czy nie korzystniejsze byloby przekazywanie zestawow regul w latwiej
(nawet natywnie) parsowalnym JSON.
--
NotBear
-
12. Data: 2013-10-09 19:56:26
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
W dniu 2013-10-09 18:13, u...@d...invalid pisze:
> A to nie wystarczy:
> $('#id').attr('style', code)
> lub
> $('#id').attr('style', code + $('#id').attr('style'))?
Wydaje mi się to jeszcze bardziej skomplikowane gdyż do wykonania tego
kodu potrzebujesz załadować 260kB plik. Jeśli serwis ma 2 wejścia na
krzyż, to ok. Przy większych realizacjach, często odwiedzanych to
przerost formy nad treścią. Procedura jaką napisałem ma kilkaset bajtów.
--
Pozdrawiam
Marek
-
13. Data: 2013-10-09 20:01:21
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
W dniu 2013-10-09 18:25, NotBear pisze:
> Zakladajac, ze faktycznie nie da sie operowac zamknietym katalogiem
> stylow poprzez przydzielanie odpowiedniej klasy lub kilku, zastanawiam
> sie czy nie korzystniejsze byloby przekazywanie zestawow regul w latwiej
> (nawet natywnie) parsowalnym JSON.
Nie bardzo załapałem? Jak miałoby to wyglądać? JSON to załadowanie i
wykonanie (zwykle) zdalnego kodu JS. Jeśli mamy na wejściu string
zawierający style, to jak wykorzystać JSON aby w czymś nam pomógł?
--
Pozdrawiam
Marek
-
14. Data: 2013-10-09 20:05:11
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: "Jordan Szubert" <u...@j...us.to>
Dnia 09-10-2013 o 20:01:21 Marek <p...@s...com> napisał(a):
> W dniu 2013-10-09 18:25, NotBear pisze:
>
>> Zakladajac, ze faktycznie nie da sie operowac zamknietym katalogiem
>> stylow poprzez przydzielanie odpowiedniej klasy lub kilku, zastanawiam
>> sie czy nie korzystniejsze byloby przekazywanie zestawow regul w latwiej
>> (nawet natywnie) parsowalnym JSON.
>
> Nie bardzo załapałem? Jak miałoby to wyglądać? JSON to załadowanie i
> wykonanie (zwykle) zdalnego kodu JS. Jeśli mamy na wejściu string
> zawierający style, to jak wykorzystać JSON aby w czymś nam pomógł?
no właśnie chodzi o to, żebyś nie miał stringa, tylko JSON
a w ogóle, to skąd bierzesz tego stringa? wygląda, że robisz coś dziwnego,
i lepszym rozwiązaniem będzie zmienić to, co stringa generuje
--
Jordan Szubert
-
15. Data: 2013-10-09 21:38:07
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
W dniu 2013-10-09 20:05, Jordan Szubert pisze:
>
> a w ogóle, to skąd bierzesz tego stringa? wygląda, że robisz coś
> dziwnego, i lepszym rozwiązaniem będzie zmienić to, co stringa generuje
Stringa generuje mi moduł w CMS (PHP) jako wynik "głębszych przemyśleń".
Teraz sobie uświadomiłem, że mógłbym zamiast stringa generować Object z
odpowiednimi właściwościami i przekazywać go w tej formie (jako JSON) do
JS na stronie WWW. Wtedy zamiast parsować string, zrobiłbym
przekopiowanie właściwości obiektu do obiektu style.
Czy tak to być zrobił?
--
Pozdrawiam
Marek
-
16. Data: 2013-10-09 22:12:54
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Marek <p...@s...com>
Tak na marginesie... znalazłem jak inlineowe style za pomocą stringu
budować:
document.getElementById("p1").style.cssText=string
:-)
-
17. Data: 2013-10-10 05:02:39
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: u...@d...invalid
W dniu 2013-10-09 19:56, Marek pisze:
> W dniu 2013-10-09 18:13, u...@d...invalid pisze:
>
>> A to nie wystarczy:
>> $('#id').attr('style', code)
>> lub
>> $('#id').attr('style', code + $('#id').attr('style'))?
>
> Wydaje mi się to jeszcze bardziej skomplikowane gdyż do wykonania tego
> kodu potrzebujesz załadować 260kB plik. Jeśli serwis ma 2 wejścia na
> krzyż, to ok. Przy większych realizacjach, często odwiedzanych to
> przerost formy nad treścią. Procedura jaką napisałem ma kilkaset bajtów.
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.
Zresztą... teraz ciężko znaleźć duży serwis nie używający jQuery. Nawet
wiele środowisk (w tym VS) domyślnie linkują skrypty jQuerowe.
-
18. Data: 2013-10-10 08:29:59
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:
>
> var dodatkowyCSS="color:red; font-weight: 400";
>
> element.style+=dodatkowyCSS;
>
> Modyfikowanie poprzez element.style.styl=wartość jest dość kłopotliwe
> gdyż musiałbym w dość skomplikowany sposób przetwarzać zmienną dodatkowyCSS.
>
jQuery...
$this= $('[style]:visible').eq(0);
console.log($this.attr('style'));
$this.attr('style',
$this.attr('style')+'background-color:red;font-size:
24px;');
console.log($this.attr('style'));
pokazuje na konsoli...
line-height:36px;
line-height:36px;background-color:red;font-size:24px
;
--
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+++*
-
19. Data: 2013-10-10 08:59:36
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=style.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+++*
-
20. Data: 2013-10-10 09:04:02
Temat: Re: JS- Jak dobrać się do atrybutu style?
Od: Neevor <p...@n...ru>
Neevor wrote:
> options: { styles=[] },
powinno być oczywiście
options: { styles: [] },
przydałaby się jeszcze funkcja do usuwania stylu
ale to już sobie sam dopiszesz
--
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+++*