Unbind @ Ajax.ActionLink после успеха - PullRequest
1 голос
/ 28 февраля 2012

Я хочу удалить ненавязчивую привязку Microsoft Ajax @ Ajax.ActionLink после щелчка.

как то так:

.cshtml:

@Ajax.ActionLink("Edit", "EditDeliveryZones", new { idConnection = ViewBag.idConnection }, new AjaxOptions() { UpdateTargetId = "EditDeliveryZones" }, new { @class = "ajaxdialogopen" })

JavaScript:

$('.ajaxdialogopen').one('click', function (event) {
     $(this).off('click'); // THIS DOESNT WORK
     this.onclick = null; // THIS DOESN't WORK EITHER
}

Спасибо!

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

Как насчет того, чтобы поместить что-то подобное в ваш обработчик:

$(this).removeAttr('data-ajax');

Я полагаю, data-ajax - это атрибут, с которым активируется живой обработчик, поэтому удаление его из ссылки должно предотвратить его обработку как ссылку ajax.

0 голосов
/ 28 февраля 2012

После чтения библиотек Microsoft и JQuery, он использует LIVE, который идет против селектора, а не элемента. Таким образом, если селектор не совпадает (или удаляет класс), событие больше не срабатывает.

Допустимая причина того, почему live устарела ... надеюсь, Microsoft скоро обновит свои библиотеки.

0 голосов
/ 28 февраля 2012

Вы можете попробовать что-то вроде

$('.ajaxdialogopen').click( function( event ) { 
    (event.preventDefault) ? event.preventDefault() : event.returnValue = false;
});
...