在管理员网页中,我有一个包含许多项目的列表,每个项目中都有一个按钮,允许为最终用户显示或隐藏这些项目。当物品显示时,该按钮是睁开眼睛的图像。当图像隐藏时,该按钮是闭合眼睛的图像。怎么运行的?例如,在隐藏项目中,该按钮是闭上眼睛的图像。所以,当我点击按钮显示日期项目时,该项目将显示给用户,并且图像变化为睁开的眼睛。在ajax调用后更改src图像
我为此使用ajax + jquery。
问题是当我点击按钮来显示或隐藏一个项目,图像和他的属性不会改变! ajax正在工作,但图像按钮不会改变。
阿贾克斯:
$(document).on('click', '#UpdatePreview', function(e){
e.preventDefault();
var uid = $(this).attr('name');
var eye = $(this).children('#imgEye').attr('name');
$.ajax({
url: 'previewLeiame.php',
type: 'POST',
data: {id: uid},
dataType: 'html',
success: function(data) {
if(eye == "visualized") {
$(this).children('#imgEye').attr('src', '../imgs/btn/no-eye-icon.png');
$(this).children('#imgEye').attr('name', 'hidden');
$(this).children('#imgEye').attr('title', 'Hidden');
} else if(eye == "hidden") {
$(this).children('#imgEye').attr('src', '../imgs/btn/eye-icon.png');
$(this).children('#imgEye').attr('name', 'visualized');
$(this).children('#imgEye').attr('title', 'Visualized');
}
}
});
});
HTML:
<td width="35" align="center">
<?php
if($data['preview'] == 0) {
?>
<a id="UpdatePreview" name="<?php echo $data['id']; ?>"><img id="imgEye" name="hidden" title="Hidden" src="../imgs/btn/no-eye-icon.png" /></a>
<?php
} else { ?>
<a id="UpdatePreview" name="<?php echo $data['id']; ?>"><img id="imgEye" name="visualized" title="Visualized" src="../imgs/btn/eye-icon.png" /></a>
<?php }
?>
</td>
任何人可以帮助我吗? 谢谢!
为什么你使用ajax,如果它没有出现你正在做什么与数据被返回? **编辑 - 我看到了,您正在提交uid .... – Difster
您确定成功被触发吗? – Difster
回调函数内的'this'不指向DOM元素。 –