enter
场景:我想做一个ajax调用来更新显示的图像。示例:单击以激活,再次单击以停用。
现在,第一次点击时图片可以正确更改。
之后,如果我再次点击img,更改将不再反映。
原因,onclick状态仍为= yes 如何在REFER HERE访问超链接元素以将onclick部分重写为onclick =“update('7','no')?
<a href="#" onclick="update('7','yes')" ><img id=img7 border=0 src="img/active.gif" ></a>
function update(pk,enable)
{
$.ajax({
url: "ajaxcall.asp",
type: "POST",
success: function(output) {
var status= output
if(status==1){
var src = ( $('#'+'img'+pk).attr("src") == "img/cross.gif")? "img/tick.gif": "img/cross.gif";
$('#'+'img'+pk).attr("src", src);
//REFER HERE
}
},
complete: function(){ },
data: 'pk='+pk+'&enable='+enable
});
}
这里
答案 0 :(得分:1)
简单易行:
替换它:
$('#'+'img'+pk).attr("src", src);
用这个:
$('#'+'img'+pk).attr("src", src).parent('a').attr('onClick','update("7","no")').
正确的方式:
此Javascript应为unobtrusive。如果是,你可以使用jQuery的事件绑定系统来运行一次事件,然后取消绑定它。
答案 1 :(得分:1)
<a id="a7" href="#"><img border="0" src="img/active.gif"></a>
然后
$(function() {
$("#a7").update("7");
});
function update(pk) {
var img = $("#img" + pk);
if (img.attr("src") == "img/cross.gif") {
enable = "no";
var src = "img/cross.gif";
} else {
enable = "yes";
var src = "img/tick.gif";
}
$.ajax({
url: "ajaxcall.asp",
type: "POST",
success: function(output) {
var status = output;
if (status == 1) {
img.attr("src", src);
}
},
complete: function(){ },
data: 'pk='+pk+'&enable='+enable
});
}
您无需传入是或否。您可以从图像src中获取它。