我有与“ element.dispatchEvent不是函数”相同的问题,在FF3.0的萤火虫中捕获了js错误,但在Google Chrome中。
我写完<script>jQuery.noConflict();</script>
所有脚本。但是现在我有另一个问题:
...
$("a.try").click(function () {
...
未定义不是函数
和
...
var blockHeight = $(window).height();
...
未定义不是函数
因此,第一个解决方法无效。
聚苯乙烯
我在其中包含脚本的html部分:
....
<script type="text/javascript"
src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript"
src="<c:url value='/resources/js/underscore.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/jquery-1.8.2.min.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/jquery.mousewheel.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/popup.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/jquery.jscrollpane.min.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/scroll-startstop.events.jquery.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/jquery-ui-1.10.0.custom.min.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/script-ini.js'/>"></script>
<script type="text/javascript"
src="<c:url value='/resources/js/map/map.js'/>"></script>
<script type="text/javascript"
src="//maps.google.com/maps/api/js?sensor=true&js?v=3.exp&libraries=places"></script>
<script type="text/template" id="terminal-template">
...
</script>
<style>
.grey-terminal {
background-color: rgb(226, 226, 226);
}
</style>
<script type="text/javascript"
src="<c:url value='/resources/js/addTerminal.js'/>"></script>
<script>jQuery.noConflict();</script>
...
你能建议另一种方法吗?
调用时jQuery.noConflict();
,不再jQuery
与该$
变量关联。
因此,类似$().click
或$(selector)
会引发错误。相反,您可以执行以下操作:
jQuery.noConflict();
jQuery('a.try').click(handler);
jQuery(window).height();
或者,您也可以将jQuery分配给新变量,如下所示:
var j$ = jQuery.noConflict();
j$('a.try').click(handler);
j$(window).height();
编辑
至于调度事件,一种实现方法(使用jQuery)是trigger
事件。假设您有一些看起来像这样的代码:
jQuery(document).on('keydown', function(e){
if (e.which === 42) {
alert('That is the key to life!');
}
});
稍后,您可以触发此事件。我们将创建一个jQuery事件并将其传递,而不是使用字符串('keydown')触发事件。
var evt = jQuery.Event('keydown');
evt.which = 42;
jQuery(document).trigger(evt);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句