我试图点击图片并通过jquery将其更改为另一张图片。
当我单步执行以下代码时,在服务器端,控制器操作会触发,在客户端,我可以在firebug观察窗口中看到正确的html返回,但图像根本没有变化。知道为什么这个div没有更新?
原始div:
<div class="inlineDiv" toggle="off" id="22"><img src="../../images/vote-favorite-off1.png" border="0"></div>
jquery代码:
$(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'>");
}
答案 0 :(得分:4)
我相信get中的this
指的是get函数。
更容易:
$(this).load(URL);
答案 1 :(得分:0)
$(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);