2013-08-22 2 views
7

Я установил свой флажок динамически на своей странице. Я хочу добавить событие click для всех флажков , которые динамически создаются.Добавление событий в динамически созданный флажок в jQuery mobile

вот мой код.

<div data-role="fieldcontain"> 
     <fieldset data-role="controlgroup" id="br"> 

     </fieldset> 
</div> 

i динамически созданный флажок и добавление к набору fieldset.

$.getJSON("http://localhost/WebSite/", 
    function(data){ 
    var branchOp=""; 
     $.each(data.branch, function(i,item){ 
     branchOp += '<input type="checkbox" name="branch" id="'+item.branchCode+'" value="'+item.branchCode+'" class="branch"><label for="'+item.branchCode+'">'+item.branchName+'</label>'; 
     $(item.branchCode).addClass("intro");  
     }); 
     $('#br').append(branchOp).trigger("create"); 
     }); 

Я использую on(), live(), метод deligate() для добавления обработчиков событий на флажках.

$('#br').delegate('click','input:checkbox', function(event) { 
    alert('selected'); 
}); 



$('#br').on('click','input:checkbox', function(event) { 
alert('selected'); 
}); 

ничего не работает для меня ...

ответ

24

С кнопками флажок/радио, используйте change событие.

Demo

$(document).on('change', '[type=checkbox]', function() { 
// code here 
}); 

Кроме того, вы можете использовать click но на DIV оберточной флажок.

$(document).on('click', 'div.ui-checkbox', function() { 
    // code here 
}); 
+0

Я следил за вашим образцом, и он работал нормально, но только мелочь. Я использую asp.net mvc с бритвой, и я создал checkbox следующим образом @Html.DisplayFor(Function(Model) Model.name) @Html.CheckBoxFor(Function(Model) Model.isSelected) Я не получаю флажок, когда я нажимаю внутри гиперссылки. ваш работает, потому что вместо этого вы создаете checboxradio. Я не знаю, в чем разница даже мысль :) – batmaci

0

Для динамически добавленной кнопки внутри складного List (или что-нибудь) я это сделать:

$(document).on("click", "#listaEntrada input", function(evt) { 
     var txSeleccionado = $(this).text(); //<-El Texto Seleccionado 
     console.log(evt); 
}); 
0

Попробуйте, это работает для динамически добавляемых флажков.

$(document).on("click", "INPUT[id^=checkboxId_]", function (event) { 
    var targetId = event.target.id; 

    if ($("#" + targetId + ":checked").length > 0) { 
     alert('checked'); 
    } 
    else { 
     alert('unchecked'); 
    } 
});