我正在尝试在外部网站代码编辑器中应用一些JavaScript代码。我从div调用一个简单的onmouseover
函数来发出警报,但它在这里不起作用是代码:error:ReferenceError: clickme is not defined
<script type="text/javascript" charset="utf-8">
document.addEvent('domready', function(){
try {
function clickme(){alert('?');}
} catch(e) {
console.log('ERR: '+e)
}
})
</script>
<div onmouseover="clickme()">Click me</div>
我必须使用document.addEvent('domready', function(){
。
有没有人有任何解决方案如何在try-catch
和document.addEvent('domready', function()
内使用函数?
答案 0 :(得分:0)
另一种方法是使用监听器,你需要能够编辑HTML:
HTML:
<div id="clickMePls">Click me</div>
JavaScript的:
document.getElementById("clickMePls").addEventListener("mouseover", clickMeFunction);
function clickMeFunction() {
alert("hi");
}
演示:JSFiddle。
答案 1 :(得分:0)
使用 Mootools
的示例
// 1st way of defining clickme before "domReady"
// var clickme;
// 2nd way of defining clickme before "domReady"
document.addEvent('load', function(){
var clickme;
});
document.addEvent('domready', function(){
try {
clickme = function(){alert('?');}
} catch(e) {
console.log('ERR: '+e)
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.6.0/mootools-core.min.js"></script>
<div onmouseover="clickme()">Click me</div>
示例无框架
在answer的帮助下,你可以在第一个地方定义clickme,然后在domready时将它绑定到一个函数。
var clickme;
(function() {
try {
clickme = function(){alert('?');}
} catch(e) {
console.log('ERR: '+e)
}
})();
<div onmouseover="clickme()">Click me</div>
使用 jQuery
的示例
var clickme;
$(document).ready(function() {
try {
clickme = function(){alert('?');}
} catch(e) {
console.log('ERR: '+e)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div onmouseover="clickme()">Click me</div>