Успех jQuery: функция {} проблема - PullRequest
1 голос
/ 02 мая 2010

У меня есть несколько элементов «select» на странице. Когда я выбираю некоторые из опций, ajax-запрос отправляется на сервер, и элемент рядом с этим 'select' должен обновляться значением ответа. Я ожидал, что будет работать следующий код:

$(".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 был успешным. Более того, работает только в том случае, если на странице есть только один «выбор», в противном случае появляется пустое всплывающее окно.

Ответы [ 2 ]

1 голос
/ 02 мая 2010

Я считаю, что «это» не то, что вы думаете, когда оно упоминается в вашем обратном вызове. Попробуйте это:

$(".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. 
        } 
    }); 
}); 
1 голос
/ 02 мая 2010
$(".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.
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...