gpt4 book ai didi

javascript - 'this' 对 item 的引用在 ie 中单击错误

转载 作者:行者123 更新时间:2023-11-30 07:29:54 25 4
gpt4 key购买 nike

对于下面的代码,我在 IE 中遇到了一些问题。传递给该函数的第二个参数应该是对所单击项目的引用。这在 FF 和 Safari 中工作正常,但是当我在 IE7 中测试它时出错。 IE 似乎获取了该元素(如控制台中所示),但每当我尝试对其执行任何操作时,我都会收到错误消息:

“对象不支持这个属性或方法”

感谢您的帮助。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script>
<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
<script language="javascript" type="text/javascript">
var Test = {
doIt: function(str, btn) {
console.log(str);
console.log(btn);
if (btn.hasClassName('red')) {
console.log('has red');
} else {
console.log('doesn\'t');
}
}
};
</script>
<a href="#" onClick="Test.doIt('hello', this)" class="red">Test</a>
</body></html>

最佳答案

问题是 btn 不会自动拥有方法 hasClassName - 这是一个原型(prototype)扩展。

收件人extend your element with prototype extension functions , 在 doIt() 的顶部添加这一行:

btn = $(btn); // Extends element with Prototype functions.

您的代码应该可以从那里开始工作。

关于javascript - 'this' 对 item 的引用在 ie 中单击错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1008103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com