Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как передать переменную в функцию с помощью JQuery??? (https://javascript.ru/forum/events/24958-kak-peredat-peremennuyu-v-funkciyu-s-pomoshhyu-jquery.html)

Иван Я 20.01.2012 10:46

Как передать переменную в функцию с помощью JQuery???
 
Здравствуйте, у меня такая проблема, я на Jquery выделяю класс картинок и при клике на каждую из них должна выполниться функция, в которую мне нужно передать данные.

К примеру:
В HTML есть класс:
<img src="/img/1.jpg" width ="400" class ="img"/>
<img src="/img/2.jpg" width ="400" class ="img"/>
<img src="/img/3.jpg" width ="400" class ="img"/>
<img src="/img/4.jpg" width ="400" class ="img"/>


В JS функция:
function openImg(w){
    alert(w);
}


А вызываться она должна вот так (подругому никак нельзя):
$(document).ready(function(){
    $(".img").click(openImg(this.attr("wigth")));
});

На этом этапе я хочу передать в функцию параметры той картинки, которая запустила событие клика в данный момент. Но элемент "this" явно делает нето, что нужно, подскажите пожалуйста как быть.

poorking 20.01.2012 10:53

Метод bind принимает Function в качестве обработчика (ну кажется, в jQuery можно передать еще Boolean равносильно возвращаемому значению, может еще чего, не знаю, но не суть), а вы передали ему значение вашего обработчика
$(document).ready(function(){
	$(".img").click(function () {
		openImg(this.attr("wigth"));
	});
});

Иван Я 20.01.2012 11:08

Спасибо!!! Я и не знал что он под "this" разные вещи понимает! Кстати, в рабочем варианте функция "attr" ненужна т.к. в нём под "this" подставляется "ImageElement". Т.е. можно просто "this.width".

poorking 20.01.2012 11:21

он (кто?) под this всегда конкретные вещи понимает, вы вместо того чтобы передать функцию методу, передали ему значение функции, вызвали ее


Часовой пояс GMT +3, время: 18:54.