我试图理解核心javascript的概念。 众所周知,我们可以为这样的事件调用全局上下文中的函数。
<span class="name" onclick="clicked()">Name</span>
function clicked(){
alert("span clicked");
}
但为什么我们不能调用函数,即如下对象方法:
<span class="name" onclick="nameobject.clicked()">Name</span>
var nameobject = {
clicked: function(){
alert("Clicked");
}
}
我有什么遗失的吗?有人可以帮我吗?
答案 0 :(得分:1)
您可以调用它,但js
代码应该在html code
之前绑定
您可以查看fiddle
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
var nameobject = {
clicked: function(){
alert("Clicked");
}
}
</script>
<span class="name" onclick="nameobject.clicked()">Name</span>
&#13;
答案 1 :(得分:0)
据我所知,没有这种情况。无论哪种方式都可以。
<span class="name" onclick="nameobject.click()">Name</span>
<span onclick="clicked()">Name2</span>
<script>
var nameobject = {
click: function(){
alert("span 1 Clicked");
}
}
var clicked = function(){
alert("span 2 clicked");
}
</script>
答案 2 :(得分:0)
如果你没有在$(document).ready()或window.onload函数中包含你的对象声明,它就可以工作。
示例不带 window.onload:
var nameObject = {
clicked: function(){
alert("Clicked");
}
}
<button onClick="nameObject.clicked()">
Click Me
</button>
示例 with window.onload(抛出错误)
window.onload = function(){
var nameObject = {
clicked: function(){
alert("Clicked");
}
}
};
<button onClick="nameObject.clicked()">
Click Me
</button>