onmouseover函数在domready事件中不起作用

时间:2016-05-20 07:19:15

标签: javascript jquery

我正在尝试在外部网站代码编辑器中应用一些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-catchdocument.addEvent('domready', function()内使用函数?

2 个答案:

答案 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>