2015-12-06 5 views
2

Я использую «Второе решение» от этой проблемы: call the same jQuery function in multiple buttonsПолучение данных от нажатия кнопки на Jquery

Я динамически создавая мои кнопки, основанные на входе, так что в настоящее время 45 кнопок! (используется для выбора номера страницы)

Есть ли способ использовать значение кнопки в качестве данных в моем $.get, чтобы я мог вытащить данные для этой страницы?

$('.bclick').click(function(){ 
    $.getJSON("url", { page: [need button data here] }, function(data){ 
     //Some actionable code 
    }) 
}); 

.bclick - класс, присвоенный каждой из созданных кнопок.

+0

что именно данные кнопки вам нужно? –

+0

Будет ли 'this.value' не работать? – AdamMcquiff

+0

Предпочтительно «значение» кнопки, визуальный текст внутри кнопки (поскольку он только указывает значение страницы) – Dagarian

ответ

3

, когда вы находитесь внутри function, зарезервированное слово this - это ссылка на ваш щелчок button.

$('.bclick').click(function(){ 
    var page = $(this).val(); 
    $.getJSON("url", { page: page }, function(data){ 
     //Some actionable code 
    }) 
}); 

Если ваши кнопки созданы динамически, вероятно, это решение не будет работать. Я могу предложить вам использовать $.on():

$("parent selector or form selector").on("click", ".bclick", function(){ 
    var page = $(this).val(); 
    $.getJSON("url", { page: page }, function(data){ 
     //Some actionable code 
    }) 
}) 
+0

Nevermind, я случайно удалил «страницу:», поэтому было неведомо, почему значение было там! – Dagarian

+0

@Dagarian О, хорошо :) –

0

Если вы создаете кнопки динамически, а затем использовать .on.

$(function(){ 
    $(document).on("click", ".blick", function(){ 
     var $this = $(this); 
     var buttonName = $this.attr("name"); 
    }); 
}); 

Sample code

0

Да, вы можете, добавив дополнительный атрибут для вашего .bclick элемента, например <button class="bclick" data="your data here"></button>.

Тогда

$('.bclick').click(function(){ 
    var buttonData = $(this).attr('data'); 
$.getJSON("url", { page: buttonData }, function(data){ 
    //Some actionable code 
    }) 
}); 
Смежные вопросы