Мне нужно получить значение или любой другой атрибут нажатой кнопки, чтобы использовать его как event.data
внутри функции.
Вот настройка:
- получил 26 кнопок со значением/текстом от «А» до «Я» в качестве элемента управления для списка по алфавиту.
- каждая кнопка имеет одинаковый class="byalpha"
- каждая кнопка запускает одну и ту же функцию поиска ajax, которая получает json-данные из sql для составления списка
- нажав кнопку class="byname", уникальное значение (например, "B") должно быть доставлено в функцию как event.data.letter
Я мог бы заставить это работать с другими элементами управления функцией, используя радио-входы и прочее:
$( "input[name=selectdept]" ).on ("click", { searchdept: function (){ return $( "input[name=selectdept]:checked" ).val()}}, startsearch );
Итак, как вы видите, щелчок по входу запускает function(startsearch)
и получает значение ввода как event.data.searchdept
для использования внутри функции. Все работает нормально.
Но попытка сделать это с помощью кнопок сводит меня с ума. Я пробовал все, что мог только представить. Поскольку мне нужно получить кнопку по классу, а не по уникальному имени или идентификатору, я не могу использовать ее, как с радио-вводом. Я пытался получить любой атрибут, используя $(this)
. Но просто приходит с «неопределенным». Некоторые из моих подходов:
$(".byname").on ("click", {letter: $(this).attr('value')}, searchdept );
or
$(".byname").on ("click", {letter: function(){ return $(this).attr("value")}}, searchdept );
или любой тип
.val() // .attr() // .text() // .html() .... you name it
Где-то здесь я нашел это "event.target.value", которое выдавало бы правильное значение (например, "B" для кнопки B), но не является хорошим решением в контексте моей функции, так как есть в общей сложности 3 различных способа (26 кнопок / 4 радио-ввода / текстовый ввод) для запуска функции, и доставленные значения усложнили бы ее.
this
, к которому вы обращаетесь, не является целевым объектом события, это функцияletter
, которая также является объектом и не имеет методов, к которым вы пытаетесь получить доступ, кстати, почему вы пытаетесь передать значение в объект события, вы не можете просто вызвать метод в обратном вызове onclick. - person Mushtaq Jameel   schedule 19.03.2015<input type="button" />
или<button></button>
элементов? Можно включитьhtml
в исходное сообщение? - person guest271314   schedule 19.03.2015