首页 > 解决方案 > Prototype .observe 说 attachEvent 不是函数

问题描述

有人可以告诉我,为什么我得到attachEvent的不是这个 - jsFiddle的函数错误?

var j = jQuery.noConflict();

function myHandler() {
  alert('triggered');
}
Event.observe(j('#xxx'), 'change', myHandler);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.3/prototype.min.js"></script>

<input type="text" id="xxx" value="123" />

标签: jqueryprototype

解决方案


Event.observe()需要 DOM 元素或元素的 id,因此要么直接传递idie xxx,要么使用.get(index)/[index]获取对索引处底层 DOM 元素的引用并将其传递给方法。

var j = jQuery.noConflict();

function myHandler() {
  console.log('triggered');
}
Event.observe('xxx', 'change', myHandler);
//Event.observe(j('#xxx').get(0), 'change', myHandler);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.3/prototype.min.js"></script>

<input type="text" id="xxx" value="123" />


推荐阅读