Reputation: 11652
I am changing html of the radiobutton (name of the radiobutton is the same) through ajax based on logice (Rates, duration changes). Before DOM changes change(function(e)
method works perfect, once it DOM changes change(function(e)
not working. What I'm doing wrong?
<tr>
<td>
<input type="radio" name="membershipTerm" checked="@yr1" value="@membership.Year1RateCode">
</td>
<td>1 Year Membership (@startDate to @Convert.ToDateTime(membership.CycleEndDate).Date.ToString("MMM yyyy"))</td>
<td>1 Year</td>
<td style="text-align: right">$<span class="membershipPrice">@membership.Year1Price</span> USD</td>
</tr>
$('input[type=radio][name=membershipTerm]').change(function(e) {
var price = $(e.target).parent().parent().find("span").text();
membershipData.updatemembershipPrice(price);
Upvotes: 0
Views: 29
Reputation: 82241
You need to use event delegation for attaching events to dynamically added DOM elements:
$(document).on('change','input[type=radio][name=membershipTerm]',function(e) {
var price = $(e.target).parent().parent().find("span").text();
membershipData.updatemembershipPrice(price);
Upvotes: 1