我只在IE中遇到错误(v8,我不知道它是否发生在旧的IE版本中,但它不会发生在Chrome或Firefox中),当我使用IE开发工具时,它会给我带来以下消息debbuger:
Breaking on JSScript runtime error - Object Expected
以下是我受影响的代码:
$('#deviceProfileSelection').change(function() { //affected line!!!!
// rest of my code...
});
此元素#deviceProfileSelection
定义如下:
<select id="deviceProfileSelection">
<option value=""><?php echo getSysMessage("dropDownSelect")?></option>
<!-- and other values...-->
</select>
我已经尝试将.change监听器定义为$(document).ready(function () {});
,但根本没有成功。还有其他想法吗?
修改
我试图使用PHP决策结构包含div,如果条件为真,则应该打印div。但是,实际上它不是打印,我的意思是,它不打印开始标记'div',只打印结束标记'div'。
浏览器可以解释这个错误,但是IE8和IE无能为力导致了这个问题。
答案 0 :(得分:2)
问题是你根本没有在代码中添加jQuery。
在<head>
标记内添加以下内容:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
那应该解决你的问题。
答案 1 :(得分:1)
检查以下内容:
$
上发出提醒,看看你得到了什么)deviceProfileSection
元素存在。答案 2 :(得分:1)
我之前遇到过与IE8类似的问题,如果是同样的问题,它找不到jquery库,检查你的路径或用cdn测试它
答案 3 :(得分:1)
我在IE8中尝试了以下代码,它的工作方式与预期一致。正如其他答案中所建议的那样,我使用了与JQuery CDN中的IE8兼容的最新版本的JQuery。不要使用2.x - 它不适用于旧版浏览器。另外,请确保您的更改事件代码位于document.ready处理程序中。
<html>
<head>
<title>IE8 Object Expected</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#deviceProfileSelection").change(function(){
console.log("#deviceProfileSelection changed to " + $(this).find(":selected").text());
});
});
</script>
</head>
<body>
<form>
<select id="deviceProfileSelection">
<option value="">Select...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</form>
</body>
</html>
答案 4 :(得分:0)
正因为没有人重复我的错误,因为你正在使用来自外部网站的jquery(src =&#34; http://code.jquery.com/jquery-1.10.2.min.js&#34;),请确保你的互联网正常运行