Ergebnis 1 bis 8 von 8
  1. #1
    bruzzler2809 ist offline Grünschnabel
    registriert
    11-03-2010
    Beiträge
    8

    Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    Hallo,

    ich habe ein Modul in Joomla, das folgendes JS aufruft:
    Code:
    <script type="text/javascript">
    var listTimeout=[];
    
    $$('.chp-parameter').addEvents({
    	mouseover:function(){
    		var i=$(this).getAttribute('data');
    		if(listTimeout[i]){
    		//if(!$('chp-list-'+i).hasClass('hid')){
    			clearTimeout(listTimeout[i]);
    			listTimeout[i]=null;
    			//console.log('over timeout...'+listTimeout);
    		}else{
    			//alert(this);
    			var btn=this;
    			listTimeout[i]=setTimeout(function(){showFilterList(btn)},0);
    		};
    		
    	},
    	mouseout:function(){
    		var i=$(this).getAttribute('data');
    		if(!$('chp-list-'+i).hasClass('hid')){
    			//clearTimeout(listTimeout[i]);
    			listTimeout[i]=setTimeout(function(){hideFilterList(i)},0);
    			//console.log('out timeout'+listTimeout);
    		}else{
    			clearTimeout(listTimeout[i]);
    			listTimeout[i]=null;
    		}
    		
    	},
    	click:function(){
    		$$('.chp-list').addClass('hid');
    		var i=$(this).getAttribute('data');
    		clearTimeout(listTimeout[i]);
    		listTimeout[i]=null;
    		showFilterList(this);
    		//console.log(listTimeout);
    	}
    });
    
    $$('.chp-list').addEvents({
    	mouseover:function(){
    		var i=$(this).getAttribute('data');
    		clearTimeout(listTimeout[i]);
    		listTimeout[i]=null;
    		//console.log(listTimeout);
    	},
    	mouseout:function(){
    		var i=$(this).getAttribute('data');
    		listTimeout[i]=setTimeout(function(){hideFilterList(i)},0);
    		//console.log(listTimeout);
    	}
    });
    
    function showFilterList(btn){
    	//alert(btn);
    	//$$('.chp-list').addClass('hid');
    	var list=$('chp-list-'+btn.getAttribute('data'));
    	//var butpos=$(btn).getPosition();
    	var butsize=$(btn).getSize().size;
    	//var left=butpos.x;
    	//var top=butpos.y+butsize.y+0;
    	var left=$(btn).offsetLeft;
    	var top=$(btn).offsetTop+butsize.y+0; 
    	list.removeClass('hid');
    	list.setStyles({top:top,left:left});
    }
    
    function hideFilterList(i){
    	//alert('hi');
    	listTimeout[i]=null;
    	$('chp-list-'+i).addClass('hid');
    	//console.log('hiding...'+i + ' -- '+listTimeout);
    }
    
    </script>
    Was mir hier noch fehlt: Ich hätte gern, dass sobald das div "chp-list+btn.getAttribute('data')" kein "hid" mehr hat, der chp-lbtn zum zugehörigen "chp-list+btn.getAttribute('data')" eine Klasse "XXX" bekommt.
    Ich habs bisher leider nur hinbekommen, dass alle chp-lbtn diese Klasse bekommen, sobald "hid" entfernt wurde. Kann mir hierbei jemand bitte helfen?
    Vielen Dank um Voraus und beste Grüße

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.689

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    Und wo wird die Klasse "hid" entfernt/gesetzt?

  3. #3
    bruzzler2809 ist offline Grünschnabel
    registriert
    11-03-2010
    Beiträge
    8

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    direkt im PHP Code...ist der fefault state...

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.689

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    Oh - hab' oben einen Teil des Codes übesehen...

    Was heißt "zum zugehörigen ..."? Wie sind die Elemente gekoppelt/verwandt?
    Was hast du ausprobiert?

  5. #5
    bruzzler2809 ist offline Grünschnabel
    registriert
    11-03-2010
    Beiträge
    8

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    "Zum zugehörigen" bedeutet, dass für jedes Element eine aufsteigende ID/data vergeben wird, das zählt einfach hoch.
    Zur Erklärung: Das ist ein Filter: Filter 0: Marke, Filter 1: Größe usw.. Da wird dann hochgezählt
    Ich hab das hier probiert:
    Code:
    $$('.chp-list').addEvents({
    mouseover:function(){
    var i=$(this).getAttribute('data');
    clearTimeout(listTimeout[i]);
    listTimeout[i]=null;
    //console.log(listTimeout);
    $$('.chp-lbtn').addClass('act');
    },
    mouseout:function(){
    var i=$(this).getAttribute('data');
    listTimeout[i]=setTimeout(function(){hideFilterList(i)},0);
    //console.log(listTimeout);
    $$('.chp-lbtn').removeClass('act');
    }
    });
    Also einmal addClass .act und einmal removeClass .act.
    Das klappt auch, allerdings wird eben nicht nach der "Data" geschaut, sondern es bekommen alle "chp-lbtn" die Klasse act. Es soll aber nur der mit dem zugehörigen Data von "chp-list" oder vom "chp-parameter" (die data sind bei beiden gleich)

    Ich hoff das war einigermaßen verständlich
    Danke und Grüße

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.689

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    Probier' mal folgenden Selektor aus:
    Code:
    $$('.chp-lbtn[data=' + i + ']')

  7. #7
    bruzzler2809 ist offline Grünschnabel
    registriert
    11-03-2010
    Beiträge
    8

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    Du meinst so?
    Code:
    $$('.chp-list').addEvents({
    mouseover:function(){
    var i=$(this).getAttribute('data');
    clearTimeout(listTimeout[i]);
    listTimeout[i]=null;
    //console.log(listTimeout);
    $$('.chp-lbtn[data=' + i + ']').addClass('act');
    },
    mouseout:function(){
    var i=$(this).getAttribute('data');
    listTimeout[i]=setTimeout(function(){hideFilterList(i)},0);
    //console.log(listTimeout);
    $$('.chp-lbtn[data=' + i + ']').removeClass('act');
    }
    });
    Hat leider keinen effect, nun kriegt der btn gar keine class mehr....

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.689

    AW: Brauche bitte hilfe mit Javascript Funktion (addclass/removeClass)

    OK - dann musst du dir alle .chp-lbtn holen, ein .each darüber machen und dann das Attribut data per Hand mit i vergleichen...

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 16-12-2009, 14:29
  2. brauche bitte hilfe mit lightbox 0.5
    Von fatjay im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 24-02-2009, 15:42
  3. Antworten: 1
    Letzter Beitrag: 02-05-2008, 14:57
  4. BRauche eure hilfe bitte
    Von Deets im Forum JavaScript
    Antworten: 16
    Letzter Beitrag: 02-11-2004, 14:53
  5. brauche hilfe... bitte!
    Von Heavy_Metal im Forum Serverseitige Programmierung
    Antworten: 7
    Letzter Beitrag: 15-03-2003, 13:37

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •