Как передать аргументы в функцию JQuery?

Я хочу передать значение функции JQuery. Ниже приведен пример кода Javascript. Я хочу преобразовать эту функцию javascript в функцию jquery. Как передать имя состояния в функцию jquery onclick?

<a onclick="showState('state_name')">ADD STATE </a>

 function showState(state_name){
 openbox_state(state_name);
 }

пожалуйста, помогите мне.

Ответ 1

Вы действительно не даете понять, есть ли у вас ряд якорей для добавления разных состояний или...?

Если вы это сделаете, вы можете сделать что-то подобное, чтобы записать соответствующее имя состояния для каждой ссылки:

<a data-stateName="state_name">ADD STATE </a>

И затем в JS, с jQuery:

$(document).ready(function() {
    $("a[data-stateName]").click(function() {
        openbox_state( $(this).attr("data-stateName") );
    });
});

Это удаляет встроенный JavaScript из вашего html, а затем использует jQuery для привязки обработчика кликов только к тем элементам <a>, которые имеют атрибут data-stateName. Затем обработчик получает значение этого атрибута для перехода к функции openbox_state().

Обработчик готового документа гарантирует, что привязка привязки привязки не произойдет, пока документ не будет готов, т.е. после того, как элементы были проанализированы и к ним можно получить доступ из JS. (Вам не нужен готовый обработчик, если вы поместите свой JS в блок script в конце элемента body.)

Ответ 2

Вы можете сделать что-то вроде этого:

<a onclick="showState()" id="florida">ADD STATE </a>

 function showState(state_name){
    var state_name = $(this).attr('id')
    openbox_state(state_name);
}

Эта функция будет извлекать значение "id" из ссылки. Затем вы можете передать значение на свою функцию "openbox_state()".: -)

Ответ 3

Вот так:

  $('#MyID').click(function () {

        var StateName = $(this).text();
        showState(StateName);       
   });

И затем для HTML, вы можете поместить некоторый идентификатор, как это:

<a id="MyID">ADD STATE </a>

Или, если у вас много состояний (что я предполагаю, это то, что вы пытаетесь сделать), вы можете ссылаться на ссылку по классу CSS следующим образом:

<a class="StateSelector">ADD STATE </a>

И тогда ваш код jquery будет выглядеть следующим образом:

$('.StateSelector').click(function () {

      var StateName = $(this).text();
      showState(StateName);          
});

Чтобы подключить обработку событий, вы можете поместить код jquery в функцию готовности документа следующим образом:

$(document).ready(function() {

    $('.StateSelector').click(function () {

          var StateName = $(this).text();
          showState(StateName);          
    });
});

Ответ 4

Если у вас есть несколько a с различными аргументами вроде этого.

<a onclick="showState('Delhi')">ADD STATE</a>
<a onclick="showState('Punjab')">ADD STATE</a>
<a onclick="showState('Gujrat')">ADD STATE</a>

function showState(state_name){
 openbox_state(state_name);
} 

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

<a state="Delhi">ADD STATE</a>
<a state="Punjab">ADD STATE</a>
<a state="Gujrat">ADD STATE</a>

$('a').click(function () {
   var StateName = $(this).attr("state");
   openbox_state(StateName);
});

Ответ 5

<a>Montana</a>

$('a').on('click', function(){
     var state = this.text ;   // OR $(this).text();   OR   $(this).html();
     showState(state);
});