请看这个小提琴:
HTML:
<div id="papa" onclick="anything(this);">Blabla</div>
JS:
function anything(theObj){
window.alert(theObj.innerHTML);
}
我不明白为什么“任何东西”这个功能没有被重新识别。(使用原型)
请看这个小提琴:
HTML:
<div id="papa" onclick="anything(this);">Blabla</div>
JS:
function anything(theObj){
window.alert(theObj.innerHTML);
}
我不明白为什么“任何东西”这个功能没有被重新识别。(使用原型)
并不是说它无法识别 -由于您在 jsfiddle 中进行的设置,this
它无法识别该方法- 将 javascript 范围限定为. 如果您选择它会正常工作:http: //jsfiddle.net/GSHsH/11/anything
onLoad
no wrap (head)
更详细一点。您设置它的方式,这就是注入到 jsfiddle 输出帧中的内容:
Event.observe(window, "load", function(){
function anything(theObj){
window.alert(theObj.innerHTML);
}
});
请注意,该方法anything
不在全局(窗口)范围内,而是在特定函数的范围内。这意味着它对页面上的元素不可见。
我设置它的方式你得到这个:
function anything(theObj){
window.alert(theObj.innerHTML);
}
这只是在页面头部定义的一个普通的旧函数 - 现在可以从页面上的元素访问。
这是因为 jsfiddle 会像这样生成您的代码:
Event.observe(window, "load", function(){
function anything (theObj){
window.alert(theObj.innerHTML);
}
});
所以你的“任何东西”功能不在全球范围内。这将起作用:
window.anything = function (theObj){
window.alert(theObj.innerHTML);
}