javascript - 使用 onload 事件时 Jquery 按钮功能不起作用

标签 javascript php jquery

我一直在尝试使用 Jquery/Javascript 中的 onload 事件动态加载 PHP 文件。以下是我到目前为止编写的代码。

    <script>
    $(document).ready(function() {
        setInterval(function () {
                $('#alerts').load('alert-check.php', function () {
                    $('#notifID').click(function (e) {
                        e.preventDefault();
                        console.log("TRUE");
                    });
                });
            }, 1000);

    });
</script>

php 文件每 1 秒正确加载一次,但问题是每当我单击 x 按钮时它就不起作用。在alert-check.php 中我有这段代码。

    <?php

include '../controller/action.php';
if(isset($_POST['dismiss'])){
    $id = $_POST['id'];
    $update = db_update('tbl_notif', $data = array("type"=>"Dismissed"), $where = array("id"=>$id));
}


$timenow = date('h:i:s');
$value = custom_query("SELECT * FROM tbl_notif WHERE type='Sticky' ORDER BY id DESC");
if($value->rowCount()>0)
{
    while($r=$value->fetch(PDO::FETCH_ASSOC)) {

        $r['content'];
        ?>
        <form id="alertForm" method="POST" action="">
            <div class="alert alert-info alert-dismissible" role="alert">
                <button type="submit" class="close" data-dismiss="alert" aria-label="Close" name="dismiss"><span aria-hidden="true">&times;</span></button>
                <input type="text" value="<?= $r['id']; ?>" id="notifID" name="id">
                <i class="fa fa-info-circle"></i> <p><?= $r['title']; ?></p>
                <p><?= $r['content']; ?></p>
            </div>
        </form>

        <?php
        if($r['intervals'] == '5m'){
            $t = date('h:i:s');
            $intervalResult = date('h:i:s', strtotime('+5 minutes', strtotime($t)));
            $update = db_update('tbl_notif', $data = array("notif_interval"=>$intervalResult, "type"=>"Sticky"), $where = array("id"=>$r['id']));
        }
    }
}

?>

我已经尝试解决这个问题几周了,请任何人帮助我。谢谢。

最佳答案

“x 按钮”点击事件首先在“x 按钮”之前加载,因为它是动态加载的。这样就不行了。

有两个选项可以实现它。

  1. 将“x Button”点击事件移至动态加载的文件
  2. 您可以通过以下方式修改点击事件代码:
<小时/>
jQuery("#x_button_parent_element_id").delegate("alerts","click",function(){
                  $('#notifID').click(function (e) {
                        e.preventDefault();
                        console.log("TRUE");
                    });
});

希望对您有帮助。

谢谢

关于javascript - 使用 onload 事件时 Jquery 按钮功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997649/

相关文章:

javascript - Bootstrap 幻灯片动画不起作用

javascript - 尝试在 ember 中查找记录和销毁记录时,DELETE 请求在 GET 请求之前完成

php - date_parse_from_format 到 unix 时间戳

javascript - window.onunload() 在 Firefox 中不起作用?在 IE 中工作吗?

javascript - jquery - 获取没有子文本的元素的文本

javascript - HTML5 - 超时后在 Canvas 上绘制

javascript - Kendo 数字格式 对于不需要的零

php - DDD - 仅在更改时保留聚合子项

PHP/MySQL : Massive SQL query or several smaller queries?

javascript - JQuery 中的产品加载错误