javascript - 单击按钮不触发

标签 javascript jquery html

我有一个 html 按钮,它连接到页面顶部的 JQuery 函数,但点击似乎没有触发?我有什么遗漏的吗?

$(function(){
                $('#ctl00_content_hidePast').click(function() {
                    var dt = new Date($.now() - 30 * 60000);
                    var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
                    $("td.bgtime").each(function() {
                        var bookingTime = ($(this).text().split(':'));
                        var d = new Date();
                        d.setHours(+bookingTime[0]);
                        d.setMinutes(bookingTime[1]);

                        var state = $("#ctl00_content_hdnPastBookingToggle").val();

                        if ($(d) > time) {
                            var timeRow = $(this).parent();
                            $(timeRow).toggle("slow",
                                function() {
                                    if (state.val === "0") {
                                        state.val = "1";} 
                                    else if (state.val === "1") {
                                        state.val = "0";
                                    };
                                });
                        };
                    });
                });
            });

还有按钮:

<button id="ctl00_content_hidePast"><i class='fa fa-eye-slash'></i> Hide/Show Past Bookings</button>

最佳答案

尝试

$(function(){
                $(document).on('click','#ctl00_content_hidePast', function() {
                    var dt = new Date($.now() - 30 * 60000);
                    var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
                    $("td.bgtime").each(function() {
                        var bookingTime = ($(this).text().split(':'));
                        var d = new Date();
                        d.setHours(+bookingTime[0]);
                        d.setMinutes(bookingTime[1]);

                        var state = $("#ctl00_content_hdnPastBookingToggle").val();

                        if ($(d) > time) {
                            var timeRow = $(this).parent();
                            $(timeRow).toggle("slow",
                                function() {
                                    if (state.val === "0") {
                                        state.val = "1";} 
                                    else if (state.val === "1") {
                                        state.val = "0";
                                    };
                                });
                        };
                    });
                });
            });

在本例中,您将事件绑定(bind)到文档。当你有动态 dom 元素时通常会使用它。您不需要将单击事件绑定(bind)到文档。实际上建议将其附加到非动态父级。例如将包含按钮的 div。在这种情况下,代码将是:

  $(document).on('click','div that contains the buttons selector', function() ..

它只会让事情变得更轻松。但由于我没有 dom 结构,我给了你一个在任何情况下都有效的答案。

关于javascript - 单击按钮不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38827841/

相关文章:

html - 更改字体颜色

javascript - jQuery 将按钮附加到链接

javascript - 突出显示选定的菜单项

javascript - 如何在javascript中垂直显示数组表格

javascript - 获取表行中 tds onclick 的从零开始的索引

javascript - 半响应图像取决于宽度

javascript - Date.toLocaleDateString 格式问题

javascript - 使用服务 worker 动态缓存 HTTP URL 的包装器?

javascript - this.evaluate 使用函数参数来实现大型可重用函数

html - 为什么在图形周围添加文字不起作用?