这是我的代码:
$('.classname').on('click',function myfunc() {
alert ('working ..!');
});
以上代码正常运行,当我点击div .classname
时,它会给我一条消息:working ..!
现在我想对onload事件使用该函数(myfunc
)。这是我的尝试:
window.onload = myfunc;
window.onload = myfunc();
document.onload = myfunc();
<body onload = "myfunc()">
object.onload=myfunc(){alert ('working ..!');}
但它们都不起作用。为什么?!为什么,当我刷新页面时看不到任何消息?我该如何解决?
答案 0 :(得分:2)
total
您已使用函数表达式创建了命名函数。您已将其传递给$('.classname').on('click',function myfunc() {
alert ('working ..!');
});
。
因为它是函数表达式,所以您不会在当前作用域中创建名为on()
的变量。它只能从内部和myfunc
函数中访问。
改为使用函数声明。
on
可以在MDN上找到关于function declarations and expressions的进一步阅读。
答案 1 :(得分:0)
该函数的范围不是全局的,因此您需要在click事件之外声明它。
答案 2 :(得分:0)
如何使用ready
事件而不是加载?你可以在jquery文档中阅读:
.load() 将事件处理程序绑定到“加载”JavaScript事件。
。就绪() 指定在DOM完全加载时要执行的函数。
在我看来,完整的dom应该是完全加载的(即已经为滚动设置和计算的元素大小......)
function scroll() {
alert('test');
return false;
}
$('.link').on('click', scroll);
$(document).on('ready', scroll);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="link">manual test</a>
修改强>
回答初级职位。小心,我看到你在prop键和值<body onload = "myfunc()">
之间放置空格你不能这样做。它应该是key=value
var myfunc = function() {
alert ('working ..!');
}
<body onload="myfunc()">
<a onclick="myfunc()">manual test</a>
</body>