• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] jQuery(window).resize(function()

dertypdernixkan

New member
moin moin

wieder ein problem mit einem script, diesmal eine jQuery(window).resize(function(), gedacht ist es um mobile endgeräte oder endgeräte mit einer geringen viewpor-width eine bessere übersicht zu geben. das problem ist, dass der div der damit versteckt wird anfängt zu schwingen wenn man das browserfenster manuell verkleinert oder das mobile endgeräte dreht.

der div geht dann (nach klick auf einen anker) auf, zu, auf, zu, auf, zu... und irgendwann ist der ausgangszustand wieder erreicht, der div ist geschlossen.

versucht habe ich mehreres aber bis jetzt hat nix geholfen

Code:
jQuery(document).ready(function () {


         smalltown();


         jQuery(window).resize(function () {


                 smalltown();


         });


});


function smalltown () {
         var NEW = jQuery(window).width();


         if(NEW <= 925){


                 jQuery(".more").css("display","inline-block");


                 jQuery("#show_friends").hide();


                 jQuery(".more").click(function(){


                         jQuery("#show_friends").slideToggle("slow");


                 });


         } else {


                 jQuery(".more").hide();


                 jQuery("#show_friends").show();


         }
}
 
Hast du mal einen Testlink, wo wir uns das live ansehen können.

PS: Das einzige, was ich sehe ist, dass du jedes mal, wenn die Breite kleiner ist als 925 einen zusätzlichen click-Eventlistener registrierst. Den müsstest du entweder im else wieder entfernen oder du machst im onclick auch eine Überprüfung auf die Breite... wobei... das .more ist ja nur sichtbar, wenn das Fenster zu schmal ist. Man kann also auch nur drauf klicken, wenn er sichtbar ist. Somit musst du den click-Eventlistener einfach nur im $(document).ready() setzten und im resize dann nur die Elemente sichtbar/versteckt setzten.
 
Hallo kkapsner

nein, einen link habe ich nicht, läuft alles auf localhost.

"den click-Eventlistener einfach nur im $(document).ready() setzten"

das heißt was? wie mache ich das?
 
Code:
jQuery(document).ready(function(){
	smalltown();
	jQuery(window).resize(function () {
		smalltown();
	});
	jQuery(".more").click(function(){
		jQuery("#show_friends").slideToggle("slow");
	});
});

function smalltown(){
	var NEW = jQuery(window).width();
	if(NEW <= 925){
		jQuery(".more").css("display","inline-block");
		jQuery("#show_friends").hide();
	}
	else {
		jQuery(".more").hide();
		jQuery("#show_friends").show();
	}
}
 
Zurück
Oben