javascript - div 内丢失 javascript 选项(div 刷新后)

标签 javascript jquery

我可以选择在单击该 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。

我有两个问题:

  • 第一次刷新后,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);
}
});

最佳答案

当您刷新 div 内的内容时,您将删除附加到内部元素的所有事件监听器。

由于您正在处理动态内容,因此需要使用 event delegation .

更改您的事件处理程序:

$("button").click(function() {
    //Code
});

采用这种格式:

$('#reloadedit').on( "click", "button", function(e) {
    e.preventDefault();
    //Code
});

当单击 div 内的任何 button 时,这将触发单击事件处理程序。

关于javascript - div 内丢失 javascript 选项(div 刷新后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52079474/

相关文章:

Javascript仅按指定字符分割字符串一次然后忽略其余部分

javascript - 我需要从 javascript 读取一个文本文件

jquery - 未捕获语法错误,无法识别的表达式 : [object Object]

java - 不区分大小写的自动完成搜索(使用 java、javascript、jquery)

javascript - 如何使用 jQuery 向左侧绝对定位元素动态添加值?

javascript - 使用 uint8 和 uint16 数组将图像读取为 arraybuffer

javascript - 如果该页面有必要加载 js/css

javascript - 根据键值显示 JSON 文件中的值

php - Jquery - 在mysql中查找两个唯一id之间的范围

javascript - 如何使用 jquery 突出显示选定的列表项?