J'ai une liste avec l'intégration de pagination.dynamique cliquez ne fonctionne pas jquery MVC4
Voici comment la liste est coming-
foreach(var item in Model)
{
<tr id="[email protected]">
<td>
@Html.DisplayFor(modelItem => item.vendorName)
</td>
<td>
@Html.DisplayFor(modelItem => item.vendor_Representative)
</td>
<td>
@Html.DisplayFor(modelItem => item.fixed_Line)
</td>
<td>
@Html.DisplayFor(modelItem => item.mobile_No)
</td>
<td>
@Html.DisplayFor(modelItem => item.fax_No)
</td>
<td>
@Html.DisplayFor(modelItem => item.emaiL)
</td>
<td>
@Html.DisplayFor(modelItem => item.addresS)
</td>
<td>
@Html.DisplayFor(modelItem => item.rep_Contact)
</td>
<td>
<span class="dropdown settings">
<a href="javascript:;" class="btn btn-default btn-mini dropdown-toggle options"
data-toggle="dropdown"><i class="fa fa-cogs"></i></a>
<ul class="dropdown-menu arrow pull-right">
<li>
<a href="javascript:;"><i class="fa fa-pencil"></i> Edit</a>
</li>
<li>
<a href="javascript:;" id="[email protected]"><i class="fa fa-lock"></i>
Delete
</a>
</li>
</ul>
</span>
</td>
</tr>
}
Maintenant, je voulais supprimer la ligne de cette liste.
Pour la première page, cela fonctionne très bien et me récupère avec alerte avec un identifiant de la ligne en cours.
Mais dès que je clique sur la deuxième page de la pagination ci-dessous, la suppression de ligne ne déclenche pas l'ID de la ligne.
jQuery-
<script type="text/javascript">
$(function() {
$(document).on('click', 'a[id^="[email protected]"]', function() {
var $this = $('a[id^="[email protected]"]');
var id = $this.parent().parent().parent().parent().parent().attr('id');
alert(id);
$.ajax({
url: '/Vendors/DeactivateVendor/@item.Id',
type: 'POST',
success: function (data) {
if (data.success == true) {
$('#' + '[email protected]').remove();
}
else {
window.location.href = "/UserAccount/Login/";
}
}
});
});
});
</script>
Au-dessus jQuery ne fonctionne que pour la première page qui existait dans le document maintenant.
Comment créer une fonction de clic pour la liste dynamique à venir après la modification de document à la page suivante.
Le premier page-
Le deuxième page-
Avez-vous d'inclure "@ item.Id" dans votre sélecteur de ligne? Vous n'avez pas "a.someSelector" à la place? Mon pari est que la deuxième page n'est pas présente lorsque le document est prêt. Quelques autres notes: Utilisez "$ (this)" au lieu de "var $ this = $ ('a [id^=" [email protected] "]');" De même, "$ this.parent(). Parent(). Parent(). Parent(). Parent(). Attr ('id');" est une mauvaise pratique en raison de sa fragilité aux changements DOM hiearachy, une meilleure utilisation ".closest ('selector')". – Andreas
Essayez ceci: $ (document) .on ('click', 'a # del - @ (item.Id)', function() {}) –