HTC和你的HTML文件是分离的
你的HTC文件里面的menuMouseover,menuMouseout等函数都是私有的
不能直接给HTML里面的对象绑定一个它看不见的函数

解决方案 »

  1.   

    一个HTC可以看作是一个继承自IHTMLElememt的类
    给一个HTML元素应用这个HTC就相当于用这个类创建一个对象
      

  2.   

    在你昨天的帖子里面,偶已经给你重新写了一个偶的哪个代码里面是直接把一个匿名函数作为Object传递给HTMLElement这样,就不用考虑公有私有的问题了
      

  3.   

    http://community.csdn.net/Expert/topic/3926/3926369.xml?temp=.501568
      

  4.   

    eglic(圪圪)解决了吗?
    如果解决了,请给eglic(圪圪)兑现!
      

  5.   

    我说过的话,不会不算数的,我正在和 eglic(圪圪) 联系,可是他还没有回我的短消息!
    有谁知道他的邮件吗?
      

  6.   

    回复人: xjdawu(左右互搏) ( ) 信誉:100  2005-04-12 17:57:00  得分: 0  
     
     
       此风不可盛
      
    =======================================================================对头
      

  7.   

    回复人: trymybest121(观察,想,行动.) ( ) 信誉:100  2005-04-12 17:34:00  得分: 0  
     
     
       我说过的话,不会不算数的,我正在和 eglic(圪圪) 联系,可是他还没有回我的短消息!
    有谁知道他的邮件吗?==============================收到你的PM了
      

  8.   

    看到了!
    我也细看了,你在上个贴子中 所更正的代码:
    设计良好, 逻辑严谨!可是我就是非常想知道  我的 写的代码 到底错在哪儿了,不管他的逻辑是多么的混乱!
    全部代码都在上面了!还希望 eglic(圪圪) ( ) 
    在我的代码基础上 改正问题. 谢谢!
    如果我把 
      str  += '<div ID="popUpMenuHTML" style="display:none;"> '
    改成:
              str  += '<div ID="popUpMenuHTML" style="display:block;"> '就能看到 mouseover 的事件响应效果,这到底是怎么一回事呢?
      

  9.   

    如果你一定要用innerHTML的方式的话要麻烦一点
    为什么一定要用这个方式呢?
      

  10.   

    其实这只是一个小小的 demo我做的东西是一个整体, 设计时就是用 innerHTML 的!
    如果我在这儿不用 innerHTML  而以前的代码都要变化.所以顾全大局,只能牺牲在这儿了.
      

  11.   

    你把 menuMouseover、menuMouseout、menuClick
    这几个函数放到页面的脚本里面,HTC的其他代码不变试试
      

  12.   

    回复人: eglic(圪圪) ( ) 信誉:103  2005-04-12 19:21:00  得分: 0   如果你一定要用innerHTML的方式的话要麻烦一点
     为什么一定要用这个方式呢?
    ===========================================================麻烦一点也没有关系, 我想知道我那三行事件绑定代码,哪儿有问题! 是不是我猜想的 parent 和 child 的关系没搞好!
      

  13.   


    把 menuMouseover、menuMouseout、menuClick
    这几个函数放到页面的脚本里面,HTC的其他代码不变。是行的通的, 我试过 menuClick ,
    menuMouseover、menuMouseout 应该也没问题。。可是这就违背了 控件设计的初衷。
      

  14.   

    哪变通一下,在控件里面给window添加这样三个方法
    绑定事件的时候这样if(typeof(window.__mover)=='undefined'){
       window.__mover=function (){
         var div=event.srcElement;
      //...............
       }
    }
    div.attachEvent("onmouseover",window.__mover);
      

  15.   

    麻烦一点也没有关系, 我想知道我那三行事件绑定代码,哪儿有问题! 是不是我猜想的 parent 和 child 的关系没搞好!
    ===================不是这个,还是一个变量作用域的问题
    HTC里面的函数在运行时从window或者document里面不可见
      

  16.   

    修改一下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,当然可以触发事件了。
    }
      

  17.   

    这是一个变量作用域的问题
    HTC里面的函数在运行时从window或者document里面不可见
    ===================那我想知道
      menu.onclick=popUpMenu;
    为什么绑定成功了呢?  都是innerHTML,为什么效果就不一样了呢?
      

  18.   

    To:     回复人: wzgme(一风一云) ( ) 信誉:100 
    =======================================你的方案是可以成功的,可是我需要绑定的是 htc 里的函数。
      

  19.   


     回复人: eglic(圪圪) ( ) 信誉:103  我觉得你没必要用HTC
    =========================
    其实单纯的做一个菜单,用不用htc 都一样,可是 我所要做的控件稍微复杂一些, 菜单只是其中的一小部分。。能说出 
    menu.onclick=popUpMenu;
    绑定成功 而
    div.attachEvent("onmouseout",menuMouseout);
    绑定不成功的原因吗?
      

  20.   

    偶看着就晕,就没用过HTC,HTC和.WSC差不多吧,是不是自定义HTML标签呀
      

  21.   

    全部,5000行代码,而且混乱不 堪, 我只要 一个小问题的解决方案!回复人: eglic(圪圪) ( ) 信誉:103 你给我发邮件吧,我给你回复!