点击该DIV中的按钮后,我可以选择刷新该DIV
<div class="col-md-12" id="reloadedit" >
<div class="block">
<div class="block-header block-header-default">
<h3 class="block-title">Edit Language</h3>
</div>
<div class="block-content" >
<?php
DoThisFunction($link);
?>
</div>
</div>
</div>
</div>
我还创建了一个简单的函数来刷新div:
<script>
function updateDiv()
{
$("#reloadedit").load(location.href + " #reloadedit>*", "");
}
</script>
该DIV中的所有内容都是PHP生成的。 该功能效果很好,并使用更新的功能刷新了DIV。
我有2个问题:
第一次刷新后,div
中的任何按钮均不起作用。基本上,我单击一个执行任务的按钮(例如,激活ID X)。它会处理一切正常并刷新div
并显示为活动状态。如果我再次单击该按钮(以禁用),它什么也没做。 (请注意,这些操作是通过sweetalert和jquery调用进行的。)。
如何制作通用函数,以便每次需要刷新div
(例如使用updateDIV("#DIVNAMEHERE")
)时都可以调用它?
谢谢。
编辑: 我获得按钮点击的代码是:
$("button").click(function() {
let button = $(this); // the button you clicked
let id = button.data("id"); // the data-id attribute of the button
let func = button.data("function");
if(func == "publish"){
Publish(id);
}
});
答案 0 :(得分:1)
刷新div
中的内容时,您将删除附加到其中元素的所有事件侦听器。
由于您要处理动态内容,因此需要使用event delegation。
更改事件处理程序:
$("button").click(function() {
//Code
});
为此格式:
$('#reloadedit').on( "click", "button", function(e) {
e.preventDefault();
//Code
});
在button
内的任何div
被单击时,这将触发点击事件处理程序。