网页中经常会遇到这样的问题:
鼠标经过某个按钮,然后按钮发生一些变化。 
最基础的方法是通过 在对象上 直接加 脚本 onmouseover="..."但是为了把js和网页html分离,经常把js 写在一个外部独立的js文件,通过对对象的ID进行遥控。比如:
一个按钮的对象是 myObj
myObj.onmouseover=function(){ //do something...}可是我发现一个问题:
因为我习惯把js调用放在head区,那么一开始就会执行到js文件里的这句代码。由于网页还未加载,所以myObj不存在。
于是,我把js调用放在网页最底部。这样,就不会出错了。虽然能解决问题,可是,我又不喜欢把js放在最后调用,我还是喜欢放在head区里。
问题一:
怎么办才好呢?是否要在js里做适当修改?
基于以上情况,我试着自己琢磨,产生了 问题二:function MyCounter()
{
var myObj=$("xxxxxxxx");
myObj.onmouseover=function(){ //do something };
myObj.onmouseout=function(){ //do something };
}window.setInterval("MyCounter()",1000);
这样相当于每秒钟都执行一次。 这样虽然能实现效果。但是,这样是不是多了个计数器,比较耗资源?
在每秒钟执行的间隔 是不是会无效?

解决方案 »

  1.   

    1.肯定会影响性能的
    2.不会啊,
    就好像这样
    obj = {}
    obj.test 有值吗?
    obj.test 有值吗?
    obj.test = 123
    obj.test 有值了。
    obj.test 有值了。只要给对象附上了属性或方法,你不删除它,它会保持的。
    放在head区域,直接用window.onload 或者js库的 domReady ,何来那么麻烦
      

  2.   

    window.onload=MyCounter;   //这样就行了。
      

  3.   

    全部放在$(function() {
    });
      

  4.   

    放在window.onload = function() { // do something
    };或者$(document).ready(function() { // do something
    };);