Foreach smyčka jQuery

hlasů
47

Mám problém, kde jsem dostat velikost okna v jQuery pak cyklické througbh tří img aplikovat šířky do inline stylu v reálném čase.

Problém je, že když je foreach smyčky spustit i dostat tuto chybu v konzole Uncaught TypeError: Object [object Object] nemá vlastní metodu ‚SetAttribute‘

Dal jsem zarážku ve smyčce a aplikuje SetAttribute na to a zdá se, že funguje. I dont pochopit, proč, když se prochází pole není léčení každou položku pole jako objekt, ale zdá se, že se snaží získat přístup k matici jako objekt.

var windowsize = $(window).width();

$(window).resize(function() {

    windowsize = $(window).width();

    $( #imgs img ).each(function (){
        $( this ).setAttribute(style,width:+windowsize+px);

    });                                                                 
});

Omlouváme se, pokud to není jasné

jakýkoliv pomoci bude výrazně třeba si uvědomit,

Položena 26/07/2013 v 15:24
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

.setAttribute()je nativní metoda Javascript. Jak používáte jQuery, použijte .attr()místo toho:

$(this).attr("style", "width:" + windowsize + "px");

nebo:

$(this).css("width", windowsize + "px");

nebo ještě lépe:

$(this).width(windowsize);
Odpovězeno 26/07/2013 v 15:28
zdroj uživatelem

hlasů
2

SetAttribute je metoda js, a ne způsob jQuery.

Musíte buď použít syrové js metodu na DOM prvek přímo nebo pomocí jQuery verze .attr () metody.

Oba způsoby jsou pod stejné, ale osobně s použitím nativní js cítí lépe.

$( this ).attr("style","width:"+windowsize+"px");
this.setAttribute("style","width:"+windowsize+"px");
Odpovězeno 26/07/2013 v 15:28
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more