ugrás a tartalomhoz

JS-sel generált gombok onclick eventje IE alatt

Dualon · 2006. Aug. 5. (Szo), 16.18
Sziasztok!

A DOM scripting, valamint JS ismereteim bővítésére nekiálltam faragni egy BBCode beillesztőt.
A diszkrét javascript-használatot szem előtt tartva a formázógombokat JS-sel generálom, Firefox (1.5.0.5. Ubuntu Dapper és Win XP SP2) alatt megy pipecül, IE (6.0 WinXP SP2) nem tudom beizzítani.

Amit eddig próbáltam:
- addEventHandler függvénnyel
- input.onclick módon
- generált onclick attribútum
- event bubbling/propagation leállítása
Ha nem JS-sel generálom a gombokat, hanem szerepelnek az XHTML kódban, akkor megy az onclick IE alatt is.

További ötleteim, amikkel nem jutottam messzire:
- onload körül lehet gond? (pl. lap teljes betöltődése megvalósul, szóval ez halovány ötlet...)
- nem jól kapom el az event-et?
- rossz eventet kapok el?

Olvastam:
- WL "onclick +IE" keresőkifejezésekre adott találatait
- quirksmode.org JS szekció
- MS event bubbling és W3C event propagation modelljei
- MS developer zone JScript szekció
- google -> egy rakat fórum- és levlista-szál mindenfelé :(

Teljes forráskód megtalálható itt (tesztelési céllal azért két szövegmező van, hogy adott lapon több "aktív" textarea is lehessen).
Már meglehetősen sok változaton túl vagyok (vagy egy tucatfélén, a 3-as már visszaszámozott :) ), elég rendesen belegabalyodtam, úgyhogy örömmel fogadnék minden segítséget.
 
1

attachEvent()

vbence · 2006. Aug. 5. (Szo), 18.25
Az addEventHandler IE-s változata az attachEvent. A postból úgy tűnik, ezt nem próbáldtad. Bővebben:

http://developer.apple.com/internet/webcontent/eventmodels.html

B
2

addEventHandlerben szerepel

Dualon · 2006. Aug. 5. (Szo), 19.31
A segítő szándékot, valamint a belinkelt anyagot köszönöm! Utóbbit még átnézem tüzetesebben, most épp szaladás van.
Az addEventHandler Weblaboros források alapján :) így néz ki:

function addEventHandler(obj, eventType, handler) {
    if (obj.addEventListener) {
        obj.addEventListener(eventType, handler, true);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on"+eventType, handler);
        return r;
    } else {
        return false;
    }
}
Ez elvileg kezeli az onclick eventet IE alatt.
3

egyébként

toxin · 2006. Aug. 5. (Szo), 19.37
miért nem használod vmelyik crossbrowser js framework-öt ? pl.

http://www.sergiopereira.com/articles/prototype.js.html#Reference.Extensions.Event

hmm? :S és felejted el az egész baxakodást
5

Imádom

vbence · 2006. Aug. 5. (Szo), 21.40
Imádom ezeket a csodás all-in-one megoldásokat, amikor egy onclik-ért egy 140K-s külső JS-t hívsz le ;)
6

no jó

toxin · 2006. Aug. 5. (Szo), 21.53
azért linkeltem be saját eseménykezelőt, de ha az egész prototype-ra épül, akkor mármindjárt más :) és megnézve ráférne ;)

ui: ja szvsz és részemről ILOVE prototype :) , a 2.0-ba majd belekerül a base alapú class mechanizmus, és végre felejtős lesz az egész protochain-re épülő elmebaj :)

http://dean.edwards.name/weblog/2006/03/base/
http://dean.edwards.name/weblog/2006/05/prototype-and-base/

:)
11

Független szkriptek

vbence · 2006. Aug. 6. (V), 09.42
Ha a böngészőfüggetlenség végső megoldásáról van szó, akkor én mindenképpen a szerveroldali transzformációban hiszek. Csak még nem volt időm, hogy megírjam.. ;)
12

nem csak onclick

Hodicska Gergely · 2006. Aug. 6. (V), 12.28
Egy ilyen framework használatával nem csak egy ilyen kényelmi funkciót nyersz, hanem rengeteg időt is, plusz rengeteg mások által felhalmozott tapasztalatot is.

Amúgy viszont kéne működjön a dolog:
<html>
	<head>
		<script type="text/javascript">
			function addEventHandler(obj, eventType, handler) {
				if (obj.addEventListener) {
					obj.addEventListener(eventType, handler, true);
					return true;
				} else if (obj.attachEvent) {
					var r = obj.attachEvent("on"+eventType, handler);
					return r;
				} else {
					return false;
				}
			}

			addEventHandler(window, 'load', setupControls);

			function setupControls() {
				var toolbar = document.getElementById('toolbar');

				var button = document.createElement('INPUT');
				button.setAttribute('type', 'button');
				addEventHandler(button, 'click', buttonClick);

				toolbar.appendChild(button);
			}

			function buttonClick() {
				alert('foo');
			}
		</script>
	</head>
	<body>
		<div id="toolbar">
		</div>
	</body>
</html>
Felhő
13

már megy

toxin · 2006. Aug. 6. (V), 13.27
lásd 9
no megvan # 08.40
15

Mindenképp szeretném megtapasztalni

Dualon · 2006. Aug. 6. (V), 20.10
Amint azt a 7-es hozzászólásban írtam, mindenképp szeretném kipróbálni a fortélyokat magam is. Későbbiekre egyértelműen a frameworköket tartom járható útnak (szükségtelen ismét feltalálni a kereket), de azok teljes megértéséhez is tisztában kell lennem a DOM scriptinggel, AJAX alapokkal, stb. Enélkül nem szívesen használnám bármelyiket is.

Köszönöm neked is a kódot, öröm látni a "jelenlévők" segítőkészségét!
17

teljesen érthető

Hodicska Gergely · 2006. Aug. 6. (V), 20.57
de azok teljes megértéséhez is tisztában kell lennem a DOM scriptinggel, AJAX alapokkal

Szerintem is ez a jó hozzászólás, azt a részt Bencének szántam. Viszont ha az alapok megvannak, akkor egy keretrendszer tanulási szempontból is nagyon jó, sok tapasztalatot lehet abból szerezni, ha az ember megpróbál rájönni, hogy miért is úgy működik, ahogy.

Kódot csak azért küldtem, mert szerintem így egyszrűbb egy kicsit.


Felhő
18

persze

Anonymous · 2006. Aug. 6. (V), 21.14
mindenki úgcsinálja, nekem is ráment vagy 2hónap mire a nulláról eljutottam idáig, csak ha megnézed a 16-os hozzászólást, és az erdeti függvényt, a sötét oldalról már nincs visszatérés :)
19

naki

toxin · 2006. Aug. 6. (V), 21.15
volt, bocsánat
7

JS framework lesz belőle...

Dualon · 2006. Aug. 5. (Szo), 23.19
Mindenképpen egy JS library-t fogok használni, de ifjú JS-padewan vagyok, és szeretném megtanulni, átlátni a sötét oldal működését is. :)
A JS lib amúgy valószínűleg a JQuery lesz; a library-k útját, valamint konkrétan ezen összeállítást ezért választottam:
- kicsi (nekem ez eléggé fontos)
- kényelmesen, CSS-re emlékeztetően oldható meg a legtöbb probléma
- moduláris, ha netán egyszer írnom kéne hozzá valamit (egotrip ^^)

Viszont továbbra sem értem, mi a gond. Még hibaüzenet sincs, mintha meg sem kapná az onclick eventet IE alatt a kezelő.
8

hát majd

toxin · 2006. Aug. 5. (Szo), 23.46
ha denegenerálódtam holnap, mert ránézésre és a gyakorlatban

http://toxin.hu/test.html

ui: jó ill. gyors parkettacsiszolást :)))
4

vagy írsz saját eseménykezelő

toxin · 2006. Aug. 5. (Szo), 19.40
emiatt http://www.quirksmode.org/js/events_advanced.html

pl.

// kis buta kezelő, célja hogy ugynazazon eseményre (event) több kezelőt is tudjunk akasztani, a w3c esemény-kezelő modelljével
// kapcsolatban felmerült kétejek miatt (http://www.quirksmode.org/js/events_advanced.html), forrás koncepció 
// Dave Crane 2005: eventRouter object-je , kibővítve, lebutítva, átalakítva stb. :)  toxin 2006  
// készült : tanulmányi, kisérleti célból, nincs túl tesztelve (ie6,fx1.501)

function eventRouter(el,eventType){
	this.el 								= el;
	this.eventsArray 						= new Array();
	if (!el.eventRouter) el.eventRouter 	= new Array();
	el.eventRouter[eventType] 				= this;
	el[eventType] 							= this.callback;
}

eventRouter.prototype = {
	notify : function(el,e){
		for (var i = 0;i<this.eventsArray.length;i++){
			this.eventsArray[i].call(el,e);
		}
	},
	addListener : function(listener){
		this.eventsArray[this.eventsArray.length] = listener;

	},
	callback : function(event){
		var e=event || window.event;
		var eventRouter = this.eventRouter['on'+e.type];
		if (eventRouter){
			eventRouter.notify(this,e);
		}
	}
}
// window onload eseményére ráakasztjuk a form inicializáló függvényt, paraméter a példa form id-je

windowEventHandler = new eventRouter(window,'onload');
windowEventHandler.addListener(windowInit);

9

no megvan

toxin · 2006. Aug. 6. (V), 08.40
IE alatt nem lehet js event attribot hozzáadni, erre már lesz találat gugliban : 'setAttribute not working in IE' , ergo ez nem megy

90.sor

element.setAttribute(attributes[j][0], attributes[j][1]);


így megy

function initRFFToolbar()
    {
    	toolbar = document.getElementById('rffToolbar');
    	// THX IE! - picipuhanak a tomb eggyel hosszabb -> undefined hiba az utolsora
		buttNum = (document.all ? aToolbarData.length-1 : aToolbarData.length)
    	
    	for(i=0; i<buttNum; i++) { // egy ciklus = egy input gomb
    		element = document.createElement(aToolbarData[i][0]);
    		if (aToolbarData[i][1] != null) {
    			attributes = aToolbarData[i][1];
	    		for(j=0; j<attributes.length; j++) { // egy ciklus = egy attribute
	    		    if (attributes[j][0]=='onclick')
	    		    {
	    		    element.onClickFunction = attributes[j][1]; 
	    		    }
	    			element.setAttribute(attributes[j][0], attributes[j][1]);
	    		}
    		}
    		toolbar.appendChild(element);
    		element.onclick = function(){eval(this.onClickFunction);};
    	}
    }

na ha mégegyszer natív js-hez nyúlok szakadjon le a kezem, wáázzeg ez 1.5óra volt [bumm]

üdv t aki most kicsit frusztrált lett :))) :P :P :P IE

ui: http://toxin.hu/bbcode/testbb.html
10

Wow

vbence · 2006. Aug. 6. (V), 09.40
...és minden szenvedés azért, hogy ne írjál be 3 gobot a html kódba :)
14

Köszönöm!

Dualon · 2006. Aug. 6. (V), 20.06
Remekül működik, köszönöm a sok beleölt energiát! Sokat számít a segítséged, bőven tanultam a témából.

(Parketta: :D csúnya szívás az is, és halad az is. :))
16

np :)

toxin · 2006. Aug. 6. (V), 20.55
én is okultam, ha nem muszály nomore, natív js :)))

ja csakhogy necsak a sötét oldalt lássuk, ami inkább a világos :) mert ami most jön az a sötét, könyebb,gyorsabb,csábitóbb, ugyanez a függvény prototype + scriptaculous DOM builder-ével

aToolbarData2 = [['input', {"type":"button", "value":"B", "title":"Félkövér", "class":"rffToolButt","onclick":"insertAtCursor('', '');","id":"rffTool_b"}]];
	function initRFFToolbar(){
	    var toolbar = $('rffToolbar');
	    aToolbarData2.each(function(aToolbarDataElem,index){ toolbar.appendChild( Builder.node(aToolbarDataElem[0],aToolbarDataElem[1])); });
	}
némi adatszerkezet átalakítással, csakhogy szép legyen :)) az eredeti aToolbarData felépítése most nem praktikus miatt

üdv t

ui: http://toxin.hu/bbcode/testbb_proto.html bár az egészet átkéne írni, mindenesetre mutatja mennyivel gyorsabban lesz meg bármi :) +51k becsatolt js kódért cserébe, mondom hogy ez a sötét oldal :))) (elsőre gyorsan megvan, érthető, logikus, átlátható és brózefüggetlen )
20

jscompressor

toxin · 2006. Aug. 7. (H), 13.35
lazán kapcsolódva a témához, phpclasses / mostani hírlevél, innovációs díj 2. helyezettje lett egy js compressor, akit érint kukk meg

http://www.phpclasses.org/browse/package/3158.html
21

más megoldások

Hodicska Gergely · 2006. Aug. 8. (K), 14.09
Egyéb használható eszközök:
JSMin - http://crockford.com/javascript/jsmin
ShrinkSafe - http://alex.dojotoolkit.org/shrinksafe

És utána még el lehet gondolkozni azon, hogy használunk még tényleges tömörítést is.


Felhő
22

amit meg is tettetek

toxin · 2006. Aug. 8. (K), 16.39
de ekkor én még younglin voltam js-ben ezért nem is emlékeztem rá :)

http://weblabor.hu/blog/20060129/cssjstomorites

még jó hogy a gugli igen : 'gzip js'
23

folytatás a jézuskától ;)

Hodicska Gergely · 2006. Aug. 9. (Sze), 23.57
Szia!


A témán felbuzdúlva kicsit átírtam a régebben itt is bemutatott kurzor kezelő megoldásomat. Az eredmény egyenlőre itt tekinthető meg. Az előző verzióhoz képest (az csak a kurzor poziciót kezelte) belekerült a kurzor (kijelölés) szélességének támogatása, meg még egy két nyalánkság. Per pillanat a kuzor kezelés jól működik IE, FF, Opera alatt is, illetve valszeg minden szabvány követő böngészővel. Opera alatt viszont van egy kis gond az eseménykezeléssel, sajnos nem teljesen W3C kompatibilis. Ez a kurzor kezelést nem érinti, viszont a demo oldal ott még nem tökéletes, pedig így is kellett kicsit hackelni bele, hogy ott is jó legyen, már csak annyi gondom van, hogy a stopPropagation nem megy. Annó amikor belevágtam, akkor cél volt, hogy az eseménykezelés is teljesen saját legyen (tanuló célzattal), most majd lehet, hogy kipróbálok pár keretrendszert, hogy azok alatt mi újság ezzel a témával kapcsolatban.

A kurzor kezelés per pillanat:
- kurzor helyének lekérdezése (pozíció, kijelölés hossza)
- kurzor pozíció beállítása (csak kijelölés változtatása, pozíció változtatása is)
- beszúrás (előtte/utána szöveg) az aktuális kurzor pozícióra (paraméterezhető: legyen kijelölve, amit beszúrtunk; ami a beszúrás előtt ki volt jelölve, az cserélve legyen, ne körülvéve)


Felhő

per pillanat nem a legfrissebb kód van kint, majd reggel frissítem
24

prototype eseménykezelés

toxin · 2006. Aug. 10. (Cs), 08.36
http://encytemedia.com/blog/articles/2006/02/08/working-with-events-in-prototype

igaz már 1.5-höz :)
25

SZVSZ nem fogja tudni

Hodicska Gergely · 2006. Aug. 10. (Cs), 09.19
Köszi, ezt ismerem (meg ott van még a listán a dojo és a YUI). Most nem tudom kipróbálni (menni kell dógózni), csak belekukkantottam a kódjába, de szerintem nem fogja tudni, mert simán az addEventListenert használja, és ott Opera alatt pl. nem lehet useCapture paraméternek true-t átadni. De majd ma még ki fogom próbálni.


Felhő
26

hát

toxin · 2006. Aug. 10. (Cs), 09.33
nem is neked írtam ki :)))) viszont jó lenne egybegyűjteni a leírásokat, összevetés végett
27

Opera Event.stop

Hodicska Gergely · 2006. Aug. 10. (Cs), 13.13
Na kipróbáltam, és a várakozásnak megfelelően nem működött sajna. Ha esetleg bárki tud megoldást erre, akkor kíváncsian várom. (Annyi kéne, hogy Opera esetén egy eseménynél tudjam letiltani az alapértelmezett működést, amit szabvány szerint a preventDefault() hívással lehetne kérni.)


Felhő
28

prototype.js bug + user error

Hodicska Gergely · 2006. Aug. 10. (Cs), 16.46
Na kiderült, hogy a saját kezelőmben volt egy kis hiba, a preventDefault működik jól opera esetében is. Ez volt az eredeti kód:
if (stopPropagation) {
	if (event.returnValue) {
		event.returnValue = false;
		event.cancelBubble = true;
	} else if (event.preventDefault) {
		event.preventDefault();
		event.stopPropagation()
	} else {
		return false;
	}
}
Ez annyiban volt hibás, hogy returnValue van Opera esetében is, ezért nem hívódott meg a preventDefault(). Két tanulság (ami kurzorkezelésnél is előjött), hogy mindig vegyük előre a szabvány szerinti működést használó kódot, meg property-k létezésének vizsgálatára használjuk a typeof valami != 'undefined' formát.

Ezzel együtt viszont (és ez zavart meg némileg eredetileg) a prototype Opera alatt bugos egy kicsit. Itt egy ezt bemutató kis kódrészlet:
<html>
	<head>
		<title>Event handling bug in prototype.js</title>
		<script type="text/javascript" src="prototype.js"></script>
		<script type="text/javascript">
			window.onload = function() {
				var item = document.getElementById('debug');
				item.focus();
				
//				item.addEventListener('keypress', testHandler, false);
				Event.observe(item, 'keypress', testHandler, false);	
			}
			
			var i = 1;
			function testHandler(event)
			{
				document.title = i++;
//				event.preventDefault();
//				event.stopPropagation();
				Event.stop(event);
			}
		</script>
	</head>
	<body>
		<textarea id="debug"></textarea>
	</body>
</html>
Ha itt az Event-es sorok elé teszünk kommentet, és a meglévő kommentek elől töröljük őket, akkor láthatjuk a helyes működést: miszerint a textareaban nem jelennek meg a kerakterek. Majd megírom Sam-nek, meg a tanulságokból valszeg lesz egy kibővített cikkecske is, mert kiderült még menetközben pár Opera sajátosság is.


Felhő
30

re

toxin · 2006. Aug. 10. (Cs), 20.06
http://dev.rubyonrails.org/svn/rails/spinoffs/prototype/README

Prototype currently targets the following platforms:

* Microsoft Internet Explorer for Windows, version 6.0 and higher
* Mozilla Firefox 1.0/Mozilla 1.7 and higher
* Apple Safari 1.2 and higher


aztán azért hajrá :) (mondjuk délután én is kezdtem rájöttem miért, opera érdekes jószág :) )
29

én gyártottam

toxin · 2006. Aug. 10. (Cs), 17.51
egy oktatási segédeszközt (eventFlow szimulátor alfa01)

http://toxin.hu/eventFlow.html

saját oktatásomra, kattingassatok a szürke téglalapokba és lesz nagy jó (piros keretbe kiírás, bele kattintva törölhető), de az opera-nak még nekifutok mégegyszer :)

kiindulásnak egyébként ez jó: http://www.opera.com/docs/specs/js/

ui: egyébként továbbra is http://www.quirksmode.org/js/events_advanced.html
és látható a teljes káosz, és maradnak a crossbrowser cuccok :)
31

Komoly lett az új verzió!

Dualon · 2006. Aug. 10. (Cs), 20.39
folytatás a jézuskától ;)


Szerény ez így augusztus közepe táján... :)

A funkcionalitás viszont látványosan gazdagodik, némi (tulajdonképp favágó) utómunkával megközelíthető a rich text editorok szolgáltatásgazdagsága.

Az Operáról megint tanultam valamit.

A kipróbált keretrendszerekkel kapcsolatos tapasztalataidról esetleg majd írnál bővebben? Épp választás előtt állok, kíváncsi lennék, Te mit látsz bennük. Mint említettem, nekem kompaktsága miatt a JQuery egyenlőre a befutó, de nyitott vagyok másra is.
32

van cikk

toxin · 2006. Aug. 10. (Cs), 21.00
nem kell hasraütésszerűen választani

http://www.sitepoint.com/article/javascript-library

:)

ui: egyébként ha a méret miatt

just a quick not about prototype.js... (this seems to work in most browsers EXCEPT Safari):

You can gzip the prototype.js file, getting the filesize down to 12,479kb sweet! So I now include it with:

src='prototype.js.gz'

:)))
33

OFF

Dualon · 2006. Aug. 10. (Cs), 23.14
Kösz, de egyenként is olvastam már bőven a frameworkökről - kifejezetten Felhő tapasztalataira lennék majd kíváncsi, hátha ezzel egy cikkre sarkallom sunyi alattomban. :)
Azt már jóideje látom, hogy prototype ügyben kit kérdezzek, ha elfajulnak a dolgok. :)
34

jó van no :)

toxin · 2006. Aug. 11. (P), 08.42
lehet más nem :P egyébként részemről, mint a fő ok, egyértelműen a magyar nyelvű fejlesztői jegyzet volt a döntő

http://prototype.rajmi.hu/prototype.js.hu.html

innen is óriási köszönet Séra László-nak (lehetne már frissíteni :)))) ) nagyon megkönyíti az indulást, no meg big thx a cheatsheat-nek is

http://www.snook.ca/archives/000531.php
régóta wallpapper-em :))

ui: másrészt különbség a kódbázisok között főleg a logikájukban van szvsz, nem a képességeikben (css-ezek én elég sokat, js alatt nem akarok semmi ahhoz hasonló látni :))) )

u2: ez kimaradt 3. okként, az Ajax in Action c. kedvenc js könyvem összes gyakorlati péládja prototype kódbázis alatt futott

http://www.amazon.com/gp/product/1932394613/104-5207273-6266311?v=glance&n=283155
36

prototype tömörítés + dokum.

Dualon · 2006. Aug. 11. (P), 13.54
A prototype magyar nyelvű dokumentációja volt annak idején az, ami miatt először elkezdtem figyelni a JS frameworköket. Komoly érv (noha fordítói szinten használom az angolt, de kényelmesebb magyarul olvasni), csakúgy, mint a tömörített méret, amit említettél.
Olyan határozatlan vagyok. Vagy nem? :)
(Ki fogom próbálni prototype-ot és JQuery-t is, és kész. Amelyik rokonszenvesebb, arra állok rá.)
35

javascript frameworkok

Hodicska Gergely · 2006. Aug. 11. (P), 09.40
Igazából nincs sok tapasztalatom ezekről a frameworkökről, mert napi munkám során kevésbé találkozom JS, inkább csak önszórakoztatásból foglalkozom vele. El szoktam olvasni a velük kapcsolatos cikkeket, de bennem is egyfajta bizonytalanság van, hogy melyiket lenne érdemes választani, illetve, hogy egyáltalán érdemes lehet-e csak egyik mellett dönteni.

A Mochkittel nem nagyon foglalkoztam még, így arról nem tudok semmit mondani, a többiek esetén így látom a dolgokat:
- A dojo egy nagyon szép kis cuccnak tűnik. Szép apival, rengeteg nagyon jól kitalált dologgal, az esemény modelje olyan, hogy akár AOP-ra is alkalmas. Plusz ott vannak olyan finomságok, mint a dojo.storage, meg hogy saját widgeteket lehet benne készíteni, szóval úgy tűnik, hogy jó döntés lehet több energiát ölni a megismerésébe.
- A prototype-ban hihetetlenül jó, hogy milyen tömören és szépen lehet dolgokat leírni (lásd toxin példái). Iszonyatosan jól vannak az alap JS objektumok kibővítve, ott van hozzá a script.aculo.us kiegészítés, ami szintén egy nagyon jó dolog.
- A YUI-ban meg azt látom, hogy amit megcsináltak az nagyon profi lett, látszik, hogy komoly meg fizetett tudás van mögötte, az esemény kezelés nagyon jónak tűnik benne, meg a komponensek is nagyon hasznosak lehetnek.

Valószínűleg az lehet az üdvözítő megoldás, ha az ember kitapasztalja, hogy hogyan lehet a különböző könyvtárakat jól vegyíteni egymással. Valószínűleg lesznek/vannak? olyan próbálkozások, hogy összehozzák a különböző megoldásokat, vegyítve azok előnyeit. Valószínüleg a feladat határozza meg, hogy melyiket lehet érdemes használni.

Bennem egyrészről dolgozik, hogy jó lenne a dojo-t alaposan megismerni, használgatni, de más részről meg sajnálnék lemondani a prototype "szépségéről". :)


Felhő
37

Kösz a kimerítő választ

Dualon · 2006. Aug. 11. (P), 13.56
Köszönöm a kimerítő választ! Keresem az üdvözítő megoldást, ha meglesz, mindenképp jelzem.
Jelenleg prototype vs jquery meccs van. :)
38

vs helyett és ;)

Hodicska Gergely · 2006. Aug. 11. (P), 14.08
Mostanában olvastam még pár cikket a témában, és egyre inkább az körvonalazódik, hogy valszeg érdemes neki vágni a dojonak. Kicsit az az érzésem, mint amikor a jEditet elhagytam az Eclipse kedvéért. Még most is vannak apróságok, amik hiányoznak, de összességében az Eclipse egy jóval robosztusabb eszköz. A dojoval is szinte bármit meg lehet csinálni, és állítólag a többiekkel (pl. Mochkittel) egész jól összefér, míg ez a prototype-ról kevésbé mondható el. Ráadásul ha valami nagyon jó új dolog kerülne bele egyik framework-be, akkor az jó eseéllyel meg lesz a dojoban is, főleg, hogy azt olvastam, hogy Alex Russel most már fő munkaidőben a dojora koncentrál. Ha meg a prototype-ból valamire szükségünk van, akkor azt simán átemelhetjük, de lehet, hogy a Mochkit (vagy épp a jQuery) is nyújt hasonló tömörséget, rövidítéseket.


Felhő
39

prototype

toxin · 2006. Aug. 11. (P), 20.18
jelzem 1.5 alatt megy pr-ben is a css szelektor alapú DOM objektum kiválasztás, ez most fedeztem fel megint :)


ugyan láttam a http://www.sitepoint.com/article/javascript-library a cikkben

Convenience is king with Prototype. Most notably, the $ function (which selects elements by id) and the $$ function (which selects elements using CSS selectors) provide extremely quick access to elements on the page. The $$ function even supports CSS3 selectors -- most browsers don't. When you use it in conjunction with the enumerable methods and Prototype's other convenience methods, you can come up with some pretty concise statements. For instance, to hide all div elements with a class of /#c#"obscene":

$$("div.obscene").map(Element.hide);
$$("a[href='http://']").each(function(element)
{
Event.observe(element, 'click', openNewWindow);
}
);


az 1.4-ben nem volt benne, ergo a doksijában sem, aztán el is feledkeztem róla, de most felfedezem a change log-ban http://dev.rubyonrails.org/svn/rails/spinoffs/prototype/CHANGELOG

1.5.0_rc0 final innen tölthető http://script.aculo.us/downloads

( nagyon zsír :))) )

ui: ahha kezdenek jönni a cikkek erről is a http://prototypedoc.com/ -ra