我正在try 填充一个带有Django后端的AJAX日历.当我加载页面并单击id="wp-日历-NAV-NEXT"时,代码工作得很好,它会根据我的要求填充日历.然而,在第一次点击之后它就不起作用了.我如何对其进行重新编码以确保id="wp-日历-NAV-NEXT"持续工作.我正在try 在编码id="wp-日历-NAV-prev"之前修复这个问题.

<div class="widget-calendar-container " id="django-calendar">

    <div class="calendar-header">
        <div class="wp-calendar-nav-prev" id="wp-calendar-nav-prev">
            <a>Jan</a>
        </div>
        <div class="calendar-title" id="cur_mon">{{ activity_month|title }}</div>
        <div class="wp-calendar-nav-next" id="wp-calendar-nav-next">
            <a>Mar</a>
        </div>
    </div>

    <table id="wp-calendar" class="wp-calendar-table">
        <thead>
            <tr>
                <th scope="col" title="Sunday">Sun</th>
                <th scope="col" title="Monday">Mon</th>
                <th scope="col" title="Tuesday">Tue</th>
                <th scope="col" title="Wednesday">Wed</th>
                <th scope="col" title="Thursday">Thu</th>
                <th scope="col" title="Friday">Fri</th>
                <th scope="col" title="Saturday">Sat</th>
            </tr>
        </thead>
        <tbody id="ajax-calendar">
            <tr>
                {% for day in c_monthdays %}
                <td {% if day == activity_day %} class="calendar-viewing" {% endif %}>
                    <div class="calendar-day-content">
                        {% if day == 0 %}
                        {% else %}
                        <a href="{% url 'calendermonthday' activity_month day %}" class="ga-calendar-day-link">
                        {{ day }}
                        {% endif %}
                        </a>
                    </div>
                </td>
                {% if forloop.last %} </tr> {% elif forloop.counter|divisibleby:"7" %} </tr> <tr> {% endif %}
                {% endfor %}
        </tbody>
    </table>

</div>

以下是脚本:

<script>
    const loadBtnNext = document.getElementById('wp-calendar-nav-next');
    function load_next_month() {
        var current_month = document.getElementById('cur_mon').textContent;
        const content_container = document.getElementById("django-calendar");
        $.ajax({
            url: '{% url "load_next_month" %}',
            type: 'GET',
            data: {
                'current_month': current_month
            },
            beforeSend: function () {
            },
            success: function (response) {
                const content_container_new = response.content_container_new
                content_container.innerHTML = `${ content_container_new }`

            },
            error: function (err) {
                console.log(err);
            },
        });
    }
    loadBtnNext.addEventListener('click', () => {
        load_next_month()
    });
</script>

解决方案1:第一次有效,第二次不起作用

$('#wp-calendar-nav-next').on('click', 'a', function(){
    load_next_month()
});

解决方案2:这个解决方案效果很好.

$(document).on('click', '.wp-calendar-nav-next', function(){
  load_next_month()
});

推荐答案

解决方案2在我的 case 中奏效:

$('#django-calendar').on('click', '.wp-calendar-nav-next', function(){
  load_next_month()
});

Jquery相关问答推荐

使用 Ajax 列出数据(仅显示最后的数据)

无限滚动jQuery插件

如何像这样通过 $.ajax ( serialize() + extra data ) 添加数据

仅在 _some 字段上通过 Enter 键禁用表单提交

jQuery: Select 属性大于值的所有元素

如何使用 jQuery 重置 jquery Select 的 Select 选项?

如何使用Angular 检测浏览器后退按钮单击事件?

jQuery scrollTop 在 Chrome 中不工作但在 Firefox 中工作

使用 JQuery 更改 :before css Select 器的宽度属性

JQUERY UI Accordion 开始折叠

AngularJS + JQuery:如何在 angularjs 中获取动态内容

使用 JQuery 激活 bootstrap 选项卡

jQuery: Select 所有具有自定义属性的元素

如何在 Bootstrap 中创建切换按钮

jquery 检测某些类的 div 已添加到 DOM

父母的jQuery父母

jQuery:如何找到父母的特定子元素?

你如何使用 jquery 淡入/淡出背景 colored颜色 ?

如何淡出显示:inline-block

我应该在addClass之前使用hasClass吗?