#javascript #jquery
#javascript #jquery
Вопрос:
Как уже упоминалось, я пытаюсь привязать нажатие тегов ‘a’ на моей странице к моей функции handleClickTag(), но мне трудно реализовать метод .on() для привязки функции и тега ‘a’. Я не уверен, что bind() будет более подходящим. Надеюсь, это имеет смысл!
a.data('tagId', tag.id); //save info inside html element
$(a).on('click', handleClickTag(a)); //bind click event of the "a" tag to the "handleClickTag" function - need help here
//code above contained inside forEach loop
function handleClickTag (event) {
var link = $(event.target);
var tagId = link.data('tagId');//would like to retrieve data from the tagId variable
//---continue function after data is correctly retrieved
}
Комментарии:
1. $(a).on(‘click’, handleClickTag(a)); => $(a).on(‘click’, handleClickTag); должно сработать. также вы можете захотеть использовать preventDefault(); в вашем обработчике, чтобы поведение тега привязки по умолчанию не выполнялось, а выполнялось только то, что определено в вашем обработчике…
Ответ №1:
Чтобы передать аргумент функции, вы можете обернуть вызов функции внутри анонимной функции:
$(a).on('click', function(){ handleClickTag(a); });
Хотя я думаю, что вам не нужно передавать аргумент здесь, должно работать просто следующее:
$(a).on('click', handleClickTag);
Комментарии:
1. Спасибо за помощь — второй вариант работает. Я просто излишне добавлял аргумент!