标题:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/timeago.js" ></script>
<script src="js/test_helpers.js" type="text/javascript"></script>
photos.php
$(".cmdclose").click(function(){
var id=this.id;
$.post("cmddel.php" ,{"id":id});
setTimeout(function(){
<?php echo 'var id = '.json_encode($_GET['id']).';'; ?>
$('#cmdz').load('cmdajax.php?id='+id);
},1000);
});
html部分:
<div id="cmdz">
<?php
$uid=$_SESSION['uid'];
$query="SELECT *
FROM `cmds`
WHERE `pid` =${id} ORDER BY `id`";
$result=$db->query($query);
?>
<table id="tblcmd">
<tr>
<?
while($result_set=$db->fetch($result)){
// echo $result_set['cmds'];
$uid=$result_set['uid'];
$query2="SELECT * FROM `user` WHERE `id` ='${uid}'";
$result2=$db->query($query2);
$result_set2=$db->fetch($result2);
echo '<td>'.$result_set2['name'].'</td>';
echo '<td>:'.$result_set['cmds'].'</td>';
echo '<td id="'.$result_set['id'] .'"><img src="images/cmd-close.jpg" class="cmdclose" id="'.$result_set['id'] .'" /> </td>';
?>
</tr>
<?php
}
?>
</table>
</div>
cmdajax.php
<?php
session_start();
require_once("includes/database.php");
if(isset($_GET['id'])){
$id=$_GET['id'];
}
$uid=$_SESSION['uid'];
$query="SELECT * FROM `cmds` WHERE `pid` =${id} ORDER BY `id`";
$result=$db->query($query);
?>
<table id="tblcmd">
<tr>
<?php
while($result_set=$db->fetch($result)){
// echo $result_set['cmds'];
$uid=$result_set['uid'];
$query2="SELECT * FROM `user` WHERE `id` ='${uid}'";
$result2=$db->query($query2);
$result_set2=$db->fetch($result2);
echo '<td>'.$result_set2['name'].'</td>';
echo '<td>:'.$result_set['cmds'].'</td>';
echo '<td id="'.$result_set['id'] .'"><img src="images/cmd-close.jpg" class="cmdclose" id="'.$result_set['id'] .'" /> </td>';
echo '<td><abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr></td>';
?>
</tr>
<?php
}
?>
</table>
我的问题是,在一次页面刷新或Ajax调用之后,函数$(".cmdclose").click(function()
将不起作用。为什么不呢?///此问题已解决
现在我正面临这个问题:
的jQuery( “abbr.timeago”)TIMEAGO(); 这个选择器无法正常工作会产生什么共鸣?感谢
答案 0 :(得分:16)
因为即使在将新内容注入DOM之前,您也限制了click
事件的功能。因此,新添加(注入)的动态内容将无法使用该功能。要处理此问题,您需要使用jQuery on
所以改变你的代码
$(function(){
$(".cmdclose").click(function(){
// your code
});
});
到
$(function(){
$(document).on("click",".cmdclose",function(){
//your code
});
});
jQuery on
将适用于当前和未来的元素。 on
从jQuery 1.7+开始是avaialbe。如果您使用的是以前版本的jQuery,请使用live
答案 1 :(得分:5)
尝试:
$(".cmdclose").live("click",function(){...
答案 2 :(得分:2)
问题是你的代码。
$(".cmdclose").click(function()
问题是“cmdclose”这个类在你的html par。
中不可用所以首先你需要在html标签中指定这个类,比如div,tr等。
之后,它的工作PLZ试试这个