Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передача значений по ссылке в функцию jQuery (https://javascript.ru/forum/jquery/24121-peredacha-znachenijj-po-ssylke-v-funkciyu-jquery.html)

AlexDf 18.12.2011 12:52

Передача значений по ссылке в функцию jQuery
 
Подскажите как правильнее по ссылке передать значения в обработчик события jQuery например:
<div class="pages"><a href="javascript:void(0);">ссылка</a></div>

$(".pages a").click(function() {
});


скажем нужно передать значения 1 и 2 я пробовал так
<div class="pages"><a href="javascript:void(page1 = 1, page2 = 2);">ссылка</a></div>

$(".pages a").click(function() {
alert(page1);
alert(page2);
});

но в таком случае значения почему то передаются только после 2 кликов по ссылке

пробовал так
<div class="pages"><a href="javascript:void(1,2);">ссылка</a></div>

$(".pages a").click(function(page1, page2) {
alert(page);
alert(page2);
});

В таком варианте alert выводит объект

Подскажите пожалуйста что делаю не так, и как надо правильно

zebra 18.12.2011 15:36

В обработчике клика вызовите функцию, которая будет передавать значения page1, page2 куда-то :)

AlexDf 18.12.2011 15:50

Можно пример!? Заранее благодарен.

zebra 18.12.2011 15:53

function test() {
var page1 = 1, page2= 2;
// делаем что-то дальше
}
$(".pages a").click(function() {
   test();
});

AlexDf 18.12.2011 16:20

Вы меня может не правильно поняли
Без jquery я просто вызываю обработчик при клиике по ссылке например
<a onclick="test(1,2)" href="javascript:void(0);">ссылка</a>

и передаю их обработчику
function test(page1, page2) {
// тело функции
}

но как передать эти же значения по ссылке не применяя событие onclick, используя лишь метод .click jquery

zebra 18.12.2011 16:29

Расскажите для чего это вам нужно? Если таких ссылок будет много, то вам проще создать объект, который будет хранить все данные.

<a id="aid1">ссылка</a>
<a id="aid2">ссылка2</a>


var data = {
  'a_id1': ['page1', 'page2'],
   'a_id2': ['page3', 'page4']
 ...
};

$('.pages a').click(function() {
    alert(data[$(this).attr('id')]); 
});

AlexDf 18.12.2011 16:53

Именно такой вариант я использовал, но почему то считаю его громоздким. Можно как то корректно через href="javascript:void(0);" передать значения обработчику используя метод .click

zebra 18.12.2011 17:00

<a onclick="test(1,2)" href="javascript:void(0);">ссылка</a>

Используйте этот вариант, если вы считаете это "корректным".

AlexDf 18.12.2011 17:12

Я вам очень благодарен за ответы! Но все же, вы можете пояснить почему в таком виде
<a href="javascript:void(page1 = 1, page2 = 2);">ссылка</a>
значения передаются только после 2 клика?

zebra 18.12.2011 18:47

Потому что вы не передаете значения, вы создаете глобальные переменные


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