Javascript 如何修复&x201C;element.dispatchEvent不是函数”;不破坏其他东西?

Javascript 如何修复&x201C;element.dispatchEvent不是函数”;不破坏其他东西?,javascript,jquery,events,dispatchevent,Javascript,Jquery,Events,Dispatchevent,我有和谷歌chrome一样的问题 我已经编写了jQuery.noConflict() 毕竟是脚本。但现在我有另一个问题: ... $("a.try").click(function () { ... 未定义不是一个函数 及 未定义不是一个函数 因此,第一个修正是无效的 附言 包含脚本的html部分: .... <script type="text/javascript" src="http://html5shim.googlecode.com/svn/trun

我有和谷歌chrome一样的问题

我已经编写了
jQuery.noConflict()
毕竟是脚本。但现在我有另一个问题:

  ...
  $("a.try").click(function () {
  ...
未定义不是一个函数

未定义不是一个函数

因此,第一个修正是无效的

附言

包含脚本的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>
...
。。。。
...
.灰色航站楼{
背景色:rgb(226226226226);
}
jQuery.noConflict();
...

你能建议另一种方法吗?

当你调用
jQuery.noConflict()时
您不再将
jQuery
$
变量关联

所以像
$()。单击
$(选择器)
将抛出错误。相反,您可以这样做:

jQuery.noConflict();
jQuery('a.try').click(handler);
jQuery(window).height();
var j$ = jQuery.noConflict();
j$('a.try').click(handler);
j$(window).height();
jQuery(document).on('keydown', function(e){
    if (e.which === 42) {
        alert('That is the key to life!');
    }
});
或者,也可以将jQuery分配给新变量,如下所示:

jQuery.noConflict();
jQuery('a.try').click(handler);
jQuery(window).height();
var j$ = jQuery.noConflict();
j$('a.try').click(handler);
j$(window).height();
jQuery(document).on('keydown', function(e){
    if (e.which === 42) {
        alert('That is the key to life!');
    }
});

编辑

至于调度事件,一种方法是(使用jQuery)触发事件。假设您有如下代码:

jQuery.noConflict();
jQuery('a.try').click(handler);
jQuery(window).height();
var j$ = jQuery.noConflict();
j$('a.try').click(handler);
j$(window).height();
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);
这对我有帮助! 添加jQuery.noConflict();在启动jquery代码并将所有“$”替换为“jquery”之前

<script type="text/javascript">
  
    jQuery.noConflict();
    jQuery(document).ready(function() {
        ....
        ....
    });
</script>

jQuery.noConflict();
jQuery(文档).ready(函数(){
....
....
});

与上述解决方案中所述相同,@Jack

jQuery未加载。。。。而noConflict应该在使用脚本之前而不是脚本之后…@Bhojendra-C-Link尼泊尔请阅读我的更新。您能建议如何重写此代码吗?是否可以重写var'event=newkeyboardevent('keydown')$(“#pac输入”).dispatchEvent(事件);'没有jquery?是的,你可以。但是,您需要像调用
$(“#pac input”).get(0).dispatchEvent(event)
一样调用它
get
将返回DOM节点(而不是jQuery包装的对象)。但是,如果您想使用jQuery方式(我推荐),您可以只
触发
事件,如
$('#pac input').trigger('keydown')
(如果需要指定键,可以将第二个参数作为对象传递,如
$('#input').trigger('keydown',{which:42})
-第二个对象模拟event object.var event=new keyboard event($(“#pac input”).get(0).dispatchEvent(event);当我调用它时,我看到它执行在我键入文本时调用的事件。我需要调用enter event($('#pac input')。触发器($('keydown',{which 42})不工作H,对于enter,您需要传递正确的
keycode
(我相信它不是42)。您的代码如何检查是否为enter键?您是否使用
e.which
?我会很快为您准备一把小提琴。。。