Во-первых, в функцию clickthis()
не передается событие, вы, кажется, путаетесь с ненавязчивыми обработчиками событий в этом отношении.Также обратите внимание, что вы не можете вернуть что-либо из вызова асинхронного метода, как вы пытаетесь это сделать из обработчика done()
.Вместо этого вы можете просто вызвать window.location.assign()
в $.ajax()
обратном вызове.
<a class="btn btn-warning" data-id="25007" href="test.aspx?id=eheAhgpAS38=">Start </a>
$('a.btn').click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "order.aspx/ActivateLocation",
data: { id: obj },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(r) {
$('#overlay').remove();
if (r.d == "1") {
window.location.assign($(this).attr('href'));
} else {
$.growl.error({
title: "Error",
message: "An error occurred, Please try again."
});
}
}
});
});
Обратите внимание, что в приведенном выше примере я предоставляю объект для data
.Это предпочтительная практика по сравнению объединения строк вместе.