javascript onclick()事件不在chrome中用于div容器中的文本

时间:2013-06-18 20:12:26

标签: javascript html google-chrome browser

以下版本不适用于Chrome,但适用于IE和Firefox:

<div id="removeField" onclick="remove(0);" style="cursor: pointer;">-Remove</div>

不会调用remove()函数。知道为什么吗?

2 个答案:

答案 0 :(得分:5)

根据this Chrome bug report,他们实施了remove功能 spec 。似乎Chrome有.remove()方法,允许您自行删除元素。您可能希望将您的功能命名为其他内容。这是注意实施的webkit changelog

答案 1 :(得分:1)

remove是Chrome中DOM元素的成员函数。在您的控制台中,您可以通过运行以下内容来查看:

> document.createElement("div").remove
function remove() { [native code] }

在内联事件处理程序中,该元素的所有属性(包括成员函数)都可用作顶级变量。内联代码有效地在with(thisElement)块内运行。在内联事件代码的上下文中,标识符remove引用元素的remove方法,而不是全局范围remove函数。

将函数名称更改为不与元素的方法名称冲突的内容,或明确使用window.remove

修改自this previous answer of mine处理IE中start方法的类似案例。