元素不是隐藏
我想隐藏图像的AJAX完成后:元素不是隐藏
$('img[src$="control-power.png"]').on('click',function(){
var id = $(this).attr("id");
id = id.substring(8);
var user_id = $('#del_'+id).val();
var donne = "pk="+user_id;
$.ajax({
data: donne,
type: "POST",
url: "<?php echo HTTP_AJAX ?>admin/validerUtilisateurAjax.php", // updating a row in the database
async: false,
success: function() { $(this).hide(); }
});
});
的图像是一个表内:
<table id="table" class="data display ">
<thead style="background-color:#CCC">
<tr>
<th>Noms</th>
<th>N° téléphone</th>
<th>Région</th>
<th>Ville</th>
<th width="5%"></th>
<th width="5%"><input type="checkbox" id="check_all" style="position: relative; top: 0px; left: 1px;"></th>
<th width="5%"></th>
</tr>
</thead>
<tbody style="background-color:#FFF">
<tr class="odd gradeX">
<td>Andriniaina Jean Aimé</td>
<td>261324494922</td>
<td>Boeny</td>
<td>Mahajanga I</td>
<td align="center" style="vertical-align:middle"><a href="admin.php?action=AdminModifierUtilisateur&id=269"><img src="http://localhost/bazarmada/pages/img/icons/edit.png" style="height:10px;width:10px;"></a></td>
<td align="center" style="vertical-align:middle"><input type="checkbox" id="del_0" value="269"></td>
<td align="center" style="vertical-align:middle"><a><img src="http://localhost/bazarmada/pages/img/icons/control-power.png" id="valider_0" style="height:10px;width:10px;cursor:pointer"></a></td>
</tr>
<tr class="odd gradeX">
<td>Andriniaina Nomenjanahary Todisoa</td>
<td>261328981998</td>
<td>Analamanga</td>
<td>Ambohidratrimo</td>
<td align="center" style="vertical-align:middle"><a href="admin.php?action=AdminModifierUtilisateur&id=208"><img src="http://localhost/bazarmada/pages/img/icons/edit.png" style="height:10px;width:10px;"></a></td>
<td align="center" style="vertical-align:middle"><input type="checkbox" id="del_1" value="208"></td>
<td align="center" style="vertical-align:middle"><a><img src="http://localhost/bazarmada/pages/img/icons/control-power.png" id="valider_1" style="height:10px;width:10px;cursor:pointer"></a></td>
</tr>
<tr class="odd gradeX">
<td>Andriniaina Nomenjanahary Todisoa</td>
<td>261325306341</td>
<td>Analamanga</td>
<td>Ambohidratrimo</td>
<td align="center" style="vertical-align:middle"><a href="admin.php?action=AdminModifierUtilisateur&id=635"><img src="http://localhost/bazarmada/pages/img/icons/edit.png" style="height:10px;width:10px;"></a></td>
<td align="center" style="vertical-align:middle"><input type="checkbox" id="del_2" value="635"></td>
<td align="center" style="vertical-align:middle"><a><img src="http://localhost/bazarmada/pages/img/icons/control-power.png" id="valider_2" style="height:10px;width:10px;cursor:pointer"></a></td>
</tr>
</tbody>
</table>
但问题是,在运行数据库更新,但图像仍然显示!那为什么不隐藏呢?
您需要的$(this)
参考存储在一个变量,然后使用该变量的研制成功回调处理程序。
使用
$('img[src$="control-power.png"]').on('click', function() {
//Store this reference in a variable
var $this = $(this);
var id = $(this).attr("id");
id = id.substring(8);
var user_id = $('#del_' + id).val();
var donne = "pk=" + user_id;
$.ajax({
data: donne,
type: "POST",
url: "<?php echo HTTP_AJAX ?>admin/validerUtilisateurAjax.php", // updating a row in the database
async: false,
success: function() {
//Use the reference variable here
$this.hide();
}
});
});
你已经失去了this
的背景。你需要将它保存在一个变量运行回调之前:
$('img[src$="control-power.png"]').on('click',function(){
var id = $(this).attr("id");
id = id.substring(8);
var user_id = $('#del_'+id).val();
var donne = "pk="+user_id;
var _this = this; // save
$.ajax({
data: donne,
type: "POST",
url: "<?php echo HTTP_AJAX ?>admin/validerUtilisateurAjax.php", // updating a row in the database
async: false,
success: function() { $(_this).hide(); } // use the saved _this
});
});
我想你在保存的时候写错了jQuery! – pheromix 2014-10-08 07:49:35
@pheromix不,它应该有下划线。 – Scimonster 2014-10-08 07:55:04
这不是我谈论的JavaScript变量,而是jQuery这个对象的引用! – pheromix 2014-10-08 07:57:29
您正在使用的HTML图像的绝对路径,因此使用
$('img[src$="http://localhost/bazarmada/pages/img/icons/control-power.png"]').on('click',function(){ ...
'this'是不同的东西,一旦你的AJAX调用里面 - 它之前分配给VAR ajax并在你的成功中使用 – Pete 2014-10-08 07:46:07