2013-08-22 15 views
7

Moje pole wyboru zostało utworzone dynamicznie na mojej stronie. Chcę dodać zdarzenie kliknięcia dla wszystkich pól wyboru , które zostały utworzone dynamicznie.Dodawanie zdarzeń do dynamicznie tworzonego pola wyboru w jquery mobile

Oto mój kod.

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

     </fieldset> 
</div> 

Dynamicznie tworzone pola wyboru i dołączane do zestawu pól.

$.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"); 
     }); 

Używam metody on(), live(), deligate() do dodawania procedur obsługi zdarzeń do pól wyboru.

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



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

nic nie działa dla mnie ...

Odpowiedz

24

Z przyciskami wyboru/radiowych, należy change wydarzenie.

Demo

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

Ponadto, można użyć click ale na div owijania pola wyboru.

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

Podążyłem za twoją próbką i działało dobrze, ale tylko mała rzecz. Używam asp.net mvc z brzytwą i stworzyłem pole wyboru takie jak to @Html.DisplayFor(Function(Model) Model.name) @Html.CheckBoxFor(Function(Model) Model.isSelected) Nie dostaję pola wyboru jest zaznaczone, gdy klikam wewnątrz hiperłącza. to twój działa, bo zamiast tego tworzysz checboxradio. Nie wiem, jaka jest różnica, nawet myślę :) – batmaci

0

Dla dinamically Dodano przycisk wewnątrz składanego listy (lub czegokolwiek) to zrobić:

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

Spróbuj tego, że to działa na dynamicznie dodawanych wyboru.

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

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