Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2011, 12:52
Новичок на форуме
Отправить личное сообщение для AlexDf Посмотреть профиль Найти все сообщения от AlexDf
 
Регистрация: 18.12.2011
Сообщений: 8

Передача значений по ссылке в функцию 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 выводит объект

Подскажите пожалуйста что делаю не так, и как надо правильно
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2011, 15:36
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

В обработчике клика вызовите функцию, которая будет передавать значения page1, page2 куда-то
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2011, 15:50
Новичок на форуме
Отправить личное сообщение для AlexDf Посмотреть профиль Найти все сообщения от AlexDf
 
Регистрация: 18.12.2011
Сообщений: 8

Можно пример!? Заранее благодарен.
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2011, 15:53
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

function test() {
var page1 = 1, page2= 2;
// делаем что-то дальше
}
$(".pages a").click(function() {
   test();
});
Ответить с цитированием
  #5 (permalink)  
Старый 18.12.2011, 16:20
Новичок на форуме
Отправить личное сообщение для AlexDf Посмотреть профиль Найти все сообщения от AlexDf
 
Регистрация: 18.12.2011
Сообщений: 8

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

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

но как передать эти же значения по ссылке не применяя событие onclick, используя лишь метод .click jquery
Ответить с цитированием
  #6 (permalink)  
Старый 18.12.2011, 16:29
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

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

<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')]); 
});
Ответить с цитированием
  #7 (permalink)  
Старый 18.12.2011, 16:53
Новичок на форуме
Отправить личное сообщение для AlexDf Посмотреть профиль Найти все сообщения от AlexDf
 
Регистрация: 18.12.2011
Сообщений: 8

Именно такой вариант я использовал, но почему то считаю его громоздким. Можно как то корректно через href="javascript:void(0);" передать значения обработчику используя метод .click
Ответить с цитированием
  #8 (permalink)  
Старый 18.12.2011, 17:00
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

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

Используйте этот вариант, если вы считаете это "корректным".
Ответить с цитированием
  #9 (permalink)  
Старый 18.12.2011, 17:12
Новичок на форуме
Отправить личное сообщение для AlexDf Посмотреть профиль Найти все сообщения от AlexDf
 
Регистрация: 18.12.2011
Сообщений: 8

Я вам очень благодарен за ответы! Но все же, вы можете пояснить почему в таком виде
<a href="javascript:void(page1 = 1, page2 = 2);">ссылка</a>
значения передаются только после 2 клика?
Ответить с цитированием
  #10 (permalink)  
Старый 18.12.2011, 18:47
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача в функцию переменного количества аргументов Эдди Элементы интерфейса 35 09.11.2018 15:25
Передача параметров с сервера в функцию mikel Events/DOM/Window 2 29.08.2011 21:18
передача в пост checkbox[on/off] в jquery dimiork Элементы интерфейса 5 15.12.2010 22:05
Валидная верстка и передача значений переменным jquery InviS jQuery 1 27.08.2010 17:17
Передача значений в функцию Destrifer Общие вопросы Javascript 2 29.11.2008 17:46