javascript - Python3 + Django : How to use Jquery in render_to_string template?

标签 javascript jquery python django render-to-string

我的酱汁在下面。

使用 render_to_string 创建的模板中的元素不是 Jquery 控件。

▶ 索引.html

{% extends 'common/base.html' %}
{% block contents %}
<section>
    <div class="main-goods-area">
        <div class="container" id="prod_list">
        </div>
    </div>
</section>
{% endblock %}

{% block jquery %}
    <script src="{% static 'js/index.js' %}"></script>
{% endblock %}

▶index.js

$(function() {
    show_inf_list('0','0','0','0','0');
    function show_inf_list(section, selection, ordering, start, limit){
        $.ajax({
            url:'/campaign/list/',
            data:{
                'campaign_section': section,
                'selection_type': selection,
                'ordering_type': ordering,
                'start': start,
                'limit': limit
            },
            dataType:'json',
            success: function (data) {
                $('#prod_list').html(data.campaign_list);
            }
        });
    }

    $('a[name=btn_like]').on('click', function (e) {
        e.preventDefault()
        console.log('a');
        return false;
    });
});

▶ View .py

def ...
    data['campaign_list'] = render_to_string(
        'main/include/prod_list.html',
        context=context,
        request=request
    )
    return JsonResponse(data)

▶ prod_list.html

<div class="ic-area">
    <ul>
        <li>
            <a href="" name="btn_like" data-id="{{ campaign.id }}">
                {% if user.influencer in campaign.like_users.all %}
                    <i class="ic_heart_small active"></i>
                {% else %}
                    <i class="ic_heart_small"></i>
                {% endif %}
            </a>
        </li>
    </ul>
</div>

我想要控制“btn_like”元素

但是,我无法控制“a[name=btn_like]”

如何在render_to_string模板元素中使用Jquery控件?

最佳答案

问题是您已在 'a[name=btn_like]' 上设置了处理程序,但它已在 DOM 就绪时分配;因此通过 Ajax 加载的新元素不会链接到处理程序。相反,将处理程序分配给更高的元素并使用委托(delegate)。

$('#prod_list').on('click', 'a[name=btn_like]', function(data) ...

关于javascript - Python3 + Django : How to use Jquery in render_to_string template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936150/

相关文章:

javascript - 严格模式回调中访问公共(public)值

javascript - 需要帮助将 jQuery 转换为 VanillaJS

javascript - 语义 UI 根本不起作用

python - 具有可变长度列表的 Format()

Python Django 异常中间件用于不在 View 中的异常

javascript - 为什么内置的confirm()对话框很少被使用?

javascript - 如何使用 ASP.Net 中的 PageMethods 将多维数组从 Javascript 传递到服务器

JavaScript 测试 CSS 样式表是否与 CSS3 媒体查询一起应用

javascript - 选择项目时如何更改下拉菜单中的默认文本

javascript - @app.route 在没有重定向的情况下无法工作