У меня есть несколько 'избранных' элементов на странице. Когда я выбираю некоторые опции, запрос ajax отправляется к серверу, и элемент, смежный с этим 'выбором', должен быть обновлен со значением ответа. Я ожидал, что следующий код будет работать:
$(".vars").live("change", function() { //selected something in <select> list
$.ajax({
type: "POST",
url "someurl.php",
data: {somedata},
success: function(html) {
$this.next().html(html); //this does not update .next() element.
}
});
});
Если я заменяю
$(this).next().html(html);
с
alert(html);
Я вижу, что запрос ajax был успешен. Кроме того, это работает, только если существует только один 'выбор' на странице, иначе пустое всплывающее окно появляется.
Я считаю, что «это» не то, что вы думаете, когда упоминается в вашем обратном вызове. Попробуйте следующее:
$(".vars").live("change", function() { //selected something in <select> list
var $driver = $(this);
$.ajax({
type: "POST",
url "someurl.php",
data: {somedata},
success: function(html) {
$driver.next().html(html); //this does not update .next() element.
}
});
});
$(".vars").live("change", function() { //selected something in <select> list
var $this = $(this);
$.ajax({
type: "POST",
url "someurl.php",
data: {somedata},
success: function(html) {
$this.next().html(html); //this does not update .next() element.
}
});
});