我正在尝试使用.load刷新divs内容。这有效,但只有一次。我认为这与重新加载的div代码中的实际链接有关,但我不知道如何继续修复它。
<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
//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>
正在刷新,然后无法再次运行,但就像我说我迷失了如何解决它。
答案 0 :(得分:5)
由于链接是动态的,您需要将事件处理程序绑定到父元素,因为您无法将事件绑定到那些不存在的元素,并且将来会添加ajax。
$('#mycontent').on('click', '#myrefresh', function() {
$('#mycontent').load('content.php');
});
答案 1 :(得分:2)
您返回新按钮。因此删除了“旧”HTML对象,这意味着旧处理程序不再存在。试试这个:
$('body').on("click", "#myrefresh", function(){
$('#mycontent').load('content.php', function() {
});
答案 2 :(得分:1)
在重新加载时,正在从DOM中删除/重新创建myrefresh div。您需要在jQuery中使用.on()
方法使用事件委托:
$(document).on('click', '#myrefresh', function () { ... });