заголовки:
<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>
в<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>
в<?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 (). этот селектор не будет работать должным образом, каков будет резонанс? благодаря
Поскольку вы ограничили функциональность события click
еще до того, как новый контент будет введен в DOM. Таким образом, функциональность не будет доступна для недавно добавленного (введенного) динамического содержимого. Чтобы справиться с этим, вам нужно использовать jQuery для
Так что измените свой код на
$(function(){ $(".cmdclose").click(function(){ // your code }); });
в
$(function(){ $(document).on("click",".cmdclose",function(){ //your code }); });
jQuery on
будет работать для текущих и будущих элементов. on
является avaialbe от jQuery 1.7+ и далее. Если вы используете предыдущую версию jQuery, используйте live
пытаться:
$(".cmdclose").live("click",function(){...
проблема в вашем коде jquery, как ваш код.
$(".cmdclose").click(function()
проблема – это «cmdclose», этот класс недоступен в вашем html-параметре.
поэтому сначала вам нужно указать этот класс в теге html, например div, tr и т. д.
после этого его рабочий плз попробует это