gpt4 book ai didi

jquery - django.jQuery $ 不是函数消息

转载 作者:行者123 更新时间:2023-12-01 01:55:11 25 4
gpt4 key购买 nike

在我的 django 项目中,我将根据 django 管理添加/编辑表单上另一个字段中的事件来清理字段值。我在 admin/change_form.html 中插入我对 js 的调用:

{{ block.super }}
<script type="text/javascript" src="{% static 'js/admin.js' %}"></script>
{{ media }}
{% endblock %}

然后是我的 admin.js:

(function($) {
$(document).ready(function() {
$("select[name='main_id']").change(function() {
$("select['test_id']").val('');
});
});
})(django.jQuery);

但是当我在控制台中打开 django-admin 页面时,我得到:

Uncaught TypeError: $ is not a function

在“$(document).ready(function() {”行上。

有人可以帮我解决这个错误吗?

提前非常感谢

最佳答案

不要添加 jQuery 的第二个副本,只需确保在定义 djagno.jQuery 后执行您的 JS。

您可以通过简单地将 JS 封装在一个事件监听器中来解决此问题,该事件监听器会在 window 加载时触发。

window.addEventListener("load", function() {
(function($) {
$("select[name='main_id']").change(function() {
$("select['test_id']").val('');
});
})(django.jQuery);
});

正如您可能已经猜到的那样,当窗口加载时,会触发“load”事件。 window.addEventListener() 只是注册一个事件监听器,该监听器在事件触发时执行匿名函数的内容。这会在所有资源加载后发生。

因为 window "load" 事件将在 $(document).ready() 之后触发,所以你不再需要它了。

关于jquery - django.jQuery $ 不是函数消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com