Как я могу заменить изображение (внутри DIV) через JQuery и AJAX - PullRequest
3 голосов
/ 20 апреля 2010

Я пытаюсь щелкнуть изображение и изменить его на другое изображение с помощью jquery.

Когда я делаю шаг по приведенному ниже коду, на стороне сервера запускается действие контроллера и на стороне клиента, я вижу правильное возвращение html в окне просмотра firebug, но изображение совсем не меняется. Любая идея, почему этот div не обновляется?

оригинальный div:

<div class="inlineDiv" toggle="off" id="22"><img src="../../images/vote-favorite-off1.png" border="0"></div>

код запроса:

    $(document).ready(function() {
        $('div.inlineDiv').live('click', function() {

        var id = $(this).attr("id");
        var toggle = $(this).attr("toggle");

        var url = '/Tracker/Update?id=' + id + '&toggle=' + toggle;

        $.get(url, function(data) {
            $(this).html(data);
        });
    });
}); 

действие контроллера:

  public ActionResult Update(int id, string toggle)
  {
       if (toggle == "off")
        {
            return Content("<img src='../../images/vote-favorite-on1.png' border=0'>");
        }
        return Content("<img src='../../images/vote-favorite-off1.png' border=0'>");
  }

Ответы [ 2 ]

4 голосов
/ 20 апреля 2010

Я считаю, что this в get относится к функции get.

проще:

$(this).load(URL);
0 голосов
/ 20 апреля 2010

$(this) не относится к правильному объекту в данный момент. Попробуйте сначала присвоить объект переменной или просто скажите $('div.inlineDiv').html(data)

var objDiv=$(this);
    $.get(url, function(data) {
        objDiv.html(data);
    });

другой метод будет $('div.inlineDiv img').attr('src',returnedPath); но вам нужно обновить действие контроллера, чтобы оно возвращало только путь src.

или как сказано ниже $('div.inlineDiv').load(URL);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...