首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

一个关于onmouseover出发function的有关问题

2012-04-25 
一个关于onmouseover出发function的问题网页中经常会遇到这样的问题:鼠标经过某个按钮,然后按钮发生一些变

一个关于onmouseover出发function的问题
网页中经常会遇到这样的问题:
鼠标经过某个按钮,然后按钮发生一些变化。 
最基础的方法是通过 在对象上 直接加 脚本 onmouseover="..."

但是为了把js和网页html分离,经常把js 写在一个外部独立的js文件,通过对对象的ID进行遥控。

比如:
一个按钮的对象是 myObj

JScript code
myObj.onmouseover=function(){ //do something...}


可是我发现一个问题:
因为我习惯把js调用放在head区,那么一开始就会执行到js文件里的这句代码。由于网页还未加载,所以myObj不存在。
于是,我把js调用放在网页最底部。这样,就不会出错了。

虽然能解决问题,可是,我又不喜欢把js放在最后调用,我还是喜欢放在head区里。


问题一:
怎么办才好呢?是否要在js里做适当修改?


基于以上情况,我试着自己琢磨,产生了 问题二:
JScript code
function MyCounter(){    var myObj=$("xxxxxxxx");    myObj.onmouseover=function(){ //do something };    myObj.onmouseout=function(){ //do something    };}window.setInterval("MyCounter()",1000);


这样相当于每秒钟都执行一次。 这样虽然能实现效果。但是,这样是不是多了个计数器,比较耗资源?
在每秒钟执行的间隔 是不是会无效?

[解决办法]
1.肯定会影响性能的
2.不会啊,
就好像这样
obj = {}
obj.test 有值吗?
obj.test 有值吗?
obj.test = 123
obj.test 有值了。
obj.test 有值了。

只要给对象附上了属性或方法,你不删除它,它会保持的。


放在head区域,直接用window.onload 或者js库的 domReady ,何来那么麻烦
[解决办法]
window.onload=MyCounter; //这样就行了。
[解决办法]
全部放在$(function() {








});
[解决办法]
放在window.onload = function() {

 // do something
};

或者$(document).ready(function() {

 // do something
};);

热点排行