Трябва да получа стойността или друг атрибут на щракнат бутон, за да го използвам като event.data
във функция.
Ето настройката:
- има 26 бутона със стойност/текст от "A" до "Z" като контрола за списък по азбука.
- всеки бутон има един и същи class="byalpha"
- всеки бутон стартира същата ajax-search-функция, която получава 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
, която да се използва във функцията. Всичко работи добре.
Но опитите с бутоните ме подлудяват. Опитах всичко, което можех само да си представя. Тъй като трябва да получа бутона по клас, а не по уникално име или идентификатор, не мога да използвам начин като с радио входа. Опитах се да получа всеки attr с помощта на $(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