2016-03-30 14 views
-3

Ich habe eine Funktion mit dem Titel changeSize(), die ich die Größe der div/span etc ändern möchte, dass es neben verwendet wird. Hier ist mein Code:

function changeSize(width, height) { 
    $(this).css('height', height); 
    $(this).css('width', width); 
} 

$('#square').changeSize(200, 200); 

ich davon aus, dass die changeSize würde (dies) ersetzen mit ('#square'), weil es neben der Funktion verwendet wird - aber es funktioniert nicht

+6

'changeSize' ist nur eine Funktion und hat nichts mit einem jquery-Objekt zu tun – PeeHaa

+1

" neben der Funktion "? $ (this) hängt vom Ereignisbereich ab –

+0

Funktionen und Methoden funktionieren nicht auf diese Weise. Es könnte so funktionieren, wenn Sie es so nennen: 'changeSize.call ($ ('# square'). Get (0), 200, 200);', aber Sie sollten jQuery einfach erweitern. https://jsfiddle.net/obwLj7kq/ –

Antwort

4

Ihre changeSize Funktion keine Methode ist auf das jQuery-Objekt. Sie müssten das Element als Parameter übergeben.

function changeSize(element, width, height) { 
    element.css('height', height); 
    element.css('width', width); 
} 

changeSize($('#square'), 200, 200); 
+0

Wenn 'changeSize' von einem Ereignis-Listener aufgerufen wird, gilt '$ (this)' für das Element, das das Ereignis aufgerufen hat. –

+0

@SterlingArcher natürlich, aber OP hat nichts über das Auslösen eines Ereignisses erwähnt – Guy

Verwandte Themen