Сведения о вопросе

FromRussia

16:07, 1st October, 2020

Теги

Передача параметров в функцию при клике на ссылку (JQuery)?

Просмотров: 338   Ответов: 6

На чистом JavaScript это выглядит как то так:

&lt;sсript&gt;<br/>
function toFunction(m1, m2) {<br/>
 alert(m1 + ' - ' + m2);<br/>
}<br/>
&lt;/sсript&gt;<br/>
&lt;а href=&quot;javascript:toFunction(10,'text')&quot; &gt;Ссылка&lt;/а&gt;



А Вот как это сделать по правилам JQuery:

&lt;sсript&gt;<br/>
$(document).ready(function() {<br/>
 $(&quot;.urlparam&quot;).click(function () {<br/>
<br/>
alert(m1 + ' - ' + m2);<br/>
<br/>
});<br/>
});<br/>


<а href="#" class=«urlparam» >Ссылка</а>



  Сведения об ответе

P_S_S

22:39, 26th September, 2020

Быть может имеет смысл использовать атрибут data-* из html5, вместо костылей на class / rel /etc., которые не предназначены для этого?

+ использование псевдо-протокола javascript: есть зло ;).


  Сведения об ответе

PAGE

10:59, 26th September, 2020

С какого перепуга мой код нельзя использовать для нескольких ссылок, я не понял.
Раз:
function toFunction(){};

$(".urlparam1").click(function () { toFunction(10,'text'); });

$(".urlparam2").click(function () { toFunction(9,'text1'); });


Два:
function toFunction(){};

$(".urlparam1").click({num: 10, text: 'text'}, toFunction);

$(".urlparam2").click({num: 9, text: 'text1'}, toFunction);



Input внутри ссылки — это полнейшая жесть. Если сильно нужно хранить какие-то данные прямо в DOM-дереве, используем валидные атрибуты data:
<а href="#" class="urlparam" data-num="10" data-text="text"></a>

<а href="#" class="urlparam" data-num="9" data-text="text1"></a>


$(".urlparam").click(function () {

    var num = $(this).data('num');

    var text = $(this).data('text');

});


  Сведения об ответе

PIRLO

03:46, 30th September, 2020

Во первых вы можете использовать eventData (см. api.jquery.com/click/).
Во вторых вы все еще можете написать:
$(".urlparam").click(function () {

    toFunction(10,'text');

});


  Сведения об ответе

padenie

23:39, 25th September, 2020

Интересный вопрос. Если мне нужен один параметр, то я пользуюсь атрибутом href="#". Если несколько параметров:
<а href="#" class="urlparam">
Ссылка
<input type="hidden" name="param1" value="1">
<input type="hidden" name="param2" value="2">
</а>

$(".urlparam").click(function () {
var param1 = $(self).find('param1').val();
});


PS А ещё я пользуюсь rel вместо class.


  Сведения об ответе

park

02:18, 29th September, 2020

$('.urlparam').each(function(index) {
    $(this).click({num: (index+1), text: $(this).value()},toFunction);
  });


  Сведения об ответе

LIZA

01:35, 29th September, 2020

Мне нравиться вот этот способ.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться