Как передать аргументы в функцию 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);
});