3

我正在尝试使用 .load 刷新 div 内容。这有效,但只有一次。我认为这与重新加载的 div 代码中的实际链接有关,但我不知道如何继续修复它。

索引.php

<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('#myrefresh').click(function(){
$('#mycontent').load('content.php', function() {
});
});
});
</script>
</head>
<body>
<div id="mycontent"><?PHP include("content.php");?></div>
</body>

内容.php

<?PHP
//content to update variables from database here...this is working

//display the variables
echo "<table width=\"253\" border=\"0\" cellpadding=\"0\" cellspacing=\"5\" bordercolor=\"#000000\" bgcolor=\"#000000\">".
    "<tr>".
    "<td><a><div id=\"myrefresh\"><img src=\"Images/BJ.png\" width=\"243\" height=\"50\" /></div></a></td>".
  "</tr>".
"<tr>".
    "<td bgcolor=\"242424\"><table width=\"243\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">".
      "<tr>".
        "<td width=\"16\"><img src=\"Images/T1.png\" width=\"16\" height=\"24\" /></td>".
        "<td><div align=\"right\" class=\"style3\">".$variable1."</div></td>".
      "</tr>". //etc more echo code here

我认为问题是

<a><div id=\"myrefresh\"><img src=\"Images/BJ.png\" width=\"243\" height=\"50\" /> </div></a>

被刷新然后无法再次运行,但就像我说的那样,我不知道如何修复它。

4

3 回答 3

5

由于链接是动态的,因此您需要将事件处理程序绑定到父元素,因为您无法将事件绑定到不存在的元素,并且将来会使用 ajax 添加。

$('#mycontent').on('click', '#myrefresh', function() {
    $('#mycontent').load('content.php');
});
于 2013-05-06T20:02:23.573 回答
2

您返回新按钮。所以“旧”的 HTML 对象被删除,这意味着旧的处理程序不再存在。尝试这个:

$('body').on("click", "#myrefresh", function(){
   $('#mycontent').load('content.php', function() {
});
于 2013-05-06T20:02:33.183 回答
1

myrefresh div 正在重新加载时从 DOM 中删除/重新创建。您需要.on()在 jQuery 中使用带有方法的事件委托,如下所示:

$(document).on('click', '#myrefresh', function () { ... });
于 2013-05-06T20:04:51.947 回答