一个经典的jQuery错误 - 未捕获的类型错误:未定义不是一个函数
A classical jQuery error - Uncaught TypeError: undefined is not a function
我的页面中有一些JS函数,我得到了这个错误。我删除了除有罪行之外的所有内容,但仍然收到此错误。
我搜索了这个论坛和网络,所以我尝试添加:分号,(jQuery(,将 $ 添加到函数参数中......我仍然收到同样的错误。
我使用在我的标头中声明的jQuery 1.11.2。
这是那些问的人的完整代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<script type= "text/javascript" src= "jquery-1.11.2.js"></script>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h2>Exporter les données d'une base<BR><BR></h2>
<HR></HR>
<form method="post" action="execute_function.php" enctype="multipart/form-data">
<?php
include 'functions.php';
propose_choix_BDD();
?>
<BR>
<div class="camp">
</div>
<div class="fichier">
</div>
<BR><BR><BR>
<div class="button">
<?php
submit_button("Export_KML");
submit_button("Export_csv");
?>
</div>
<input type= "hidden" name="export_campagne" value="true" />
</form>
<script type="text/javascript">
console.log("I start");
$(function(){
$('.camp').on('change',"#id_camp_ch",function() { //error here
alert ("I change !");
});
console.log("I stop");
});
</script>
</body>
<?php
retour_index();
?>
propose_choix_BDD()
回显了包含 DB 的下拉列表,div class="camp"
其中包含一些在 DB 菜单中检测到 jQuery 更改时回显的表(出于清晰原因删除了脚本(。因此,.camp
是动态填充的。一旦是,我希望我的JS在下拉菜单中检测到用户所做的更改。 #id_camp_ch
是包装此菜单的<select>
ID 的名称。
我同意,当我削减了一部分代码时,.camp
将保持空白。换句话说,#id_campagne_choix
永远不会存在。但即使我使用完整的脚本,它也不会在开始时存在。所以我不应该得到这样的错误...
我还尝试将所有脚本放在文档的底部。
如果我删除$( ".camp" )...})
行,则会显示警报。
如果你对此有任何想法,那就太棒了:)
他们的错误,请尝试以下代码...
onload = function() {
$( ".camp" ).on("change","#id_camp_ch",function() {
alert ("change !");
});
};
但相反,你应该使用
$(document).ready(function(){
$( ".camp" ).on("change","#id_camp_ch",function() {
alert ("change !");
});
});
当 DOM 准备就绪时,onchange
将触发。
我终于再次下载了jQuery v2.1.1。 它有效!感谢您的帮助
我不明白更改div的目的,因为div没有更改侦听器。
您可以使用以下示例之一来提供帮助:
<form method="post" action="execute_function.php" enctype="multipart/form-data">
<BR>
change me!
<input type="text" class="camp"><br>
or me
<input type="text" id="id_camp_ch"><br>
dont change me! i won't make anything!
<input type="text" id="id_camp_ch" class="camp">
</id>
<div class="fichier">
And never change ME!!!!!
<select id="test">
<option></option>
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</div>
<BR><BR><BR>
<div class="button">
</div>
<input type= "hidden" name="export_campagne" value="true" />
</form>
<script type="text/javascript">
$('#id_camp_ch.camp').change(function() {
alert ("I said to u dont change me!!!"); //or do what u need
});
</script>
我还认为div 标签没有更改侦听器,这就是它抛出错误的原因。
如果id_camp_ch
是带有风格阵营的div的孩子,或者其他东西,那么您应该使用.camp>#id_camp_ch
而不是.camp#id_camp_ch
.
我认为您可以通过使用正确的选择器而不是使用 .on()
函数来解决它。
在使用之前包含 jquery。
享受:)
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- 一个ajax循环有两个输出错误innerHTML
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 我怎么能把一个错误当作未捕获的错误来记录呢
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- javascript window.location在检查firebug时给了我一个错误的url路径
- 调试器;[错误]194:11:标识符是一个保留字
- new SharedWorker(“whatever.js”)返回一个错误
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- JQuery关注上一个点击的输入错误
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- 未捕获的引用错误——一个函数工作而另一个不起作用
- 图表API错误——[一个或多个参与者未能绘制()]