悬赏 100元 人民币 求一个 javascript 脚本的bug 的解决办法! HTC和你的HTML文件是分离的你的HTC文件里面的menuMouseover,menuMouseout等函数都是私有的不能直接给HTML里面的对象绑定一个它看不见的函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个HTC可以看作是一个继承自IHTMLElememt的类给一个HTML元素应用这个HTC就相当于用这个类创建一个对象 在你昨天的帖子里面,偶已经给你重新写了一个偶的哪个代码里面是直接把一个匿名函数作为Object传递给HTMLElement这样,就不用考虑公有私有的问题了 http://community.csdn.net/Expert/topic/3926/3926369.xml?temp=.501568 eglic(圪圪)解决了吗?如果解决了,请给eglic(圪圪)兑现! 我说过的话,不会不算数的,我正在和 eglic(圪圪) 联系,可是他还没有回我的短消息!有谁知道他的邮件吗? 回复人: xjdawu(左右互搏) ( ) 信誉:100 2005-04-12 17:57:00 得分: 0 此风不可盛 =======================================================================对头 回复人: trymybest121(观察,想,行动.) ( ) 信誉:100 2005-04-12 17:34:00 得分: 0 我说过的话,不会不算数的,我正在和 eglic(圪圪) 联系,可是他还没有回我的短消息!有谁知道他的邮件吗?==============================收到你的PM了 看到了!我也细看了,你在上个贴子中 所更正的代码:设计良好, 逻辑严谨!可是我就是非常想知道 我的 写的代码 到底错在哪儿了,不管他的逻辑是多么的混乱!全部代码都在上面了!还希望 eglic(圪圪) ( ) 在我的代码基础上 改正问题. 谢谢!如果我把 str += '<div ID="popUpMenuHTML" style="display:none;"> '改成: str += '<div ID="popUpMenuHTML" style="display:block;"> '就能看到 mouseover 的事件响应效果,这到底是怎么一回事呢? 如果你一定要用innerHTML的方式的话要麻烦一点为什么一定要用这个方式呢? 其实这只是一个小小的 demo我做的东西是一个整体, 设计时就是用 innerHTML 的!如果我在这儿不用 innerHTML 而以前的代码都要变化.所以顾全大局,只能牺牲在这儿了. 你把 menuMouseover、menuMouseout、menuClick这几个函数放到页面的脚本里面,HTC的其他代码不变试试 回复人: eglic(圪圪) ( ) 信誉:103 2005-04-12 19:21:00 得分: 0 如果你一定要用innerHTML的方式的话要麻烦一点 为什么一定要用这个方式呢?===========================================================麻烦一点也没有关系, 我想知道我那三行事件绑定代码,哪儿有问题! 是不是我猜想的 parent 和 child 的关系没搞好! 把 menuMouseover、menuMouseout、menuClick这几个函数放到页面的脚本里面,HTC的其他代码不变。是行的通的, 我试过 menuClick ,menuMouseover、menuMouseout 应该也没问题。。可是这就违背了 控件设计的初衷。 哪变通一下,在控件里面给window添加这样三个方法绑定事件的时候这样if(typeof(window.__mover)=='undefined'){ window.__mover=function (){ var div=event.srcElement; //............... }}div.attachEvent("onmouseover",window.__mover); 麻烦一点也没有关系, 我想知道我那三行事件绑定代码,哪儿有问题! 是不是我猜想的 parent 和 child 的关系没搞好!===================不是这个,还是一个变量作用域的问题HTC里面的函数在运行时从window或者document里面不可见 修改一下popUpMenu()=========function popUpMenu() { var menu = event.srcElement; if(menu.tagName != "SPAN") return; oPopup = window.createPopup(); var oPopupbody=oPopup.document.body; var height = menu.nextSibling.firstChild.childNodes.length*24; oPopupbody.innerHTML = menu.nextSibling.innerHTML; for (var i = 0; i < oPopupbody.all.length; i++) { if (oPopupbody.all[i].tagName == "SPAN") oPopupbody.all[i].onclick=parent.menuitemclick1; } oPopup.show(0, menu.offsetHeight, 100, height, menu);=================你开始的事件是绑定在父窗口里的,而不是绑定了Popup窗口里的html,所以应该在Popup里绑定。====至于你的style="",那时候是直接显示的父窗口的html,根本不是你的Popup,当然可以触发事件了。 } 这是一个变量作用域的问题HTC里面的函数在运行时从window或者document里面不可见===================那我想知道 menu.onclick=popUpMenu;为什么绑定成功了呢? 都是innerHTML,为什么效果就不一样了呢? To: 回复人: wzgme(一风一云) ( ) 信誉:100 =======================================你的方案是可以成功的,可是我需要绑定的是 htc 里的函数。 回复人: eglic(圪圪) ( ) 信誉:103 我觉得你没必要用HTC=========================其实单纯的做一个菜单,用不用htc 都一样,可是 我所要做的控件稍微复杂一些, 菜单只是其中的一小部分。。能说出 menu.onclick=popUpMenu;绑定成功 而div.attachEvent("onmouseout",menuMouseout);绑定不成功的原因吗? 偶看着就晕,就没用过HTC,HTC和.WSC差不多吧,是不是自定义HTML标签呀 全部,5000行代码,而且混乱不 堪, 我只要 一个小问题的解决方案!回复人: eglic(圪圪) ( ) 信誉:103 你给我发邮件吧,我给你回复! EXTJS4如何对两张表进行查询,返回JSON后生成树 firefox下ckeditor的问题,无法选中控件 弹出层效果 如何让字符一个个停下来? 点击链接,获得取值,链接到别的页面,同时展开相应的ul li textarea换行问题 jquery新手问题8(图) 求助 提一个小问题,50分相送 怎么样关掉ie窗口而不被询问?谢谢来访者 如何用javaScript传递多个参数呢!在线等! 像http://bt3.btchina.net/里,鼠标放在名称上面就出现一个新页的效果怎么实现的?
给一个HTML元素应用这个HTC就相当于用这个类创建一个对象
如果解决了,请给eglic(圪圪)兑现!
有谁知道他的邮件吗?
此风不可盛
=======================================================================对头
我说过的话,不会不算数的,我正在和 eglic(圪圪) 联系,可是他还没有回我的短消息!
有谁知道他的邮件吗?==============================收到你的PM了
我也细看了,你在上个贴子中 所更正的代码:
设计良好, 逻辑严谨!可是我就是非常想知道 我的 写的代码 到底错在哪儿了,不管他的逻辑是多么的混乱!
全部代码都在上面了!还希望 eglic(圪圪) ( )
在我的代码基础上 改正问题. 谢谢!
如果我把
str += '<div ID="popUpMenuHTML" style="display:none;"> '
改成:
str += '<div ID="popUpMenuHTML" style="display:block;"> '就能看到 mouseover 的事件响应效果,这到底是怎么一回事呢?
为什么一定要用这个方式呢?
如果我在这儿不用 innerHTML 而以前的代码都要变化.所以顾全大局,只能牺牲在这儿了.
这几个函数放到页面的脚本里面,HTC的其他代码不变试试
为什么一定要用这个方式呢?
===========================================================麻烦一点也没有关系, 我想知道我那三行事件绑定代码,哪儿有问题! 是不是我猜想的 parent 和 child 的关系没搞好!
把 menuMouseover、menuMouseout、menuClick
这几个函数放到页面的脚本里面,HTC的其他代码不变。是行的通的, 我试过 menuClick ,
menuMouseover、menuMouseout 应该也没问题。。可是这就违背了 控件设计的初衷。
绑定事件的时候这样if(typeof(window.__mover)=='undefined'){
window.__mover=function (){
var div=event.srcElement;
//...............
}
}
div.attachEvent("onmouseover",window.__mover);
===================不是这个,还是一个变量作用域的问题
HTC里面的函数在运行时从window或者document里面不可见
=========
function popUpMenu()
{
var menu = event.srcElement;
if(menu.tagName != "SPAN") return;
oPopup = window.createPopup();
var oPopupbody=oPopup.document.body;
var height = menu.nextSibling.firstChild.childNodes.length*24;
oPopupbody.innerHTML = menu.nextSibling.innerHTML;
for (var i = 0; i < oPopupbody.all.length; i++) { if (oPopupbody.all[i].tagName == "SPAN")
oPopupbody.all[i].onclick=parent.menuitemclick1; } oPopup.show(0, menu.offsetHeight, 100, height, menu);
=================你开始的事件是绑定在父窗口里的,而不是绑定了Popup窗口里的html,所以应该在Popup里绑定。
====
至于你的style="",那时候是直接显示的父窗口的html,根本不是你的Popup,当然可以触发事件了。
}
HTC里面的函数在运行时从window或者document里面不可见
===================那我想知道
menu.onclick=popUpMenu;
为什么绑定成功了呢? 都是innerHTML,为什么效果就不一样了呢?
=======================================你的方案是可以成功的,可是我需要绑定的是 htc 里的函数。
回复人: eglic(圪圪) ( ) 信誉:103 我觉得你没必要用HTC
=========================
其实单纯的做一个菜单,用不用htc 都一样,可是 我所要做的控件稍微复杂一些, 菜单只是其中的一小部分。。能说出
menu.onclick=popUpMenu;
绑定成功 而
div.attachEvent("onmouseout",menuMouseout);
绑定不成功的原因吗?