解决方案 »

  1.   

    抱歉,补充一下:var __event = {
        ba_click : function () {
            alert('aaa');
        }
    };var __form = {
        layout: function() {
              document.getElementById('id').append("<a href='javascript:__event.baclick()'>click事件绑定无效</a>");
        }
    };
    这里是获取的DOM对象,动态整理的 a 链接,为什么这样事件绑定不上去呢?
      

  2.   

    看看是不是作用域问题,写在html中的js代码只能访问全局变量
    window['__event'] = {
        ba_click : function () {
            alert('aaa');
        }
    };
    试试
      

  3.   

    这代码什么意思啊? 我把这段代码放到Js文件中整个JS就不行了。
    备注: 我的JS不是放到页面上的,不引用的JS文件。<script src="/js/aaa.js" .../>我好困惑   
      

  4.   

    你写错了 baclick() //这是你写的  document.body.append("<a href='javascript:__event.baclick()'>click事件绑定无效</a>");
    ba_click() //这是你定义的
      

  5.   

    还有,浏览器是报 “__event” 未定义。
    这个类都没有找到,不知道为什么。
      

  6.   

    可能是append那个方法的问题吧 我这样好使var __event = {
        ba_click : function () {
            alert('aaa');
        }
    };
     
    var __form = {
        layout: function() {
              document.body.innerHTML="<a href='javascript:__event.baclick()'>click事件绑定无效</a>";
        }
    };
    __form.layout()
      

  7.   


    这个是我真实的代码。
    使用的 jqury.append()  方法。
    (备注:页面上也有效果,增加的 a 链接也生效)
      

  8.   

    好奇怪,为什么 alert(this) 是 [object Window] 呢?
      

  9.   


    你代码写的比我好很多,深入的我不太懂了! 不过试了一下,把方法绑定到onclick时间  就返回对象本身了 
    我想可能因为a标签的默认时间就是返回window对象,因为它是个链接阿  默认事件必然是返回一个新的窗口
      

  10.   


    恩恩,你分析了以后好像是这样子。我总感觉是弹出DOM,刚才查了一下资料。
    好像不同的浏览器处理的机制不一样。呵呵,我写的代码弱爆了。
      

  11.   

    1、首先,原生没有append这个方法,是appendChild(),如果是JQ也不是document.body这样写的。
    2、是__event.ba_click()  而不是__event.baclick() 。
    3、只要_event是顶级作用域,即window下,就可以用,这跟是单独xx.js 还是页面里的script没很大关系
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
    var __event = {
        ba_click : function () {
            alert('aaa');
        }
    };
     
    var __form = {
        layout: function() {
              $("body").append("<a href='javascript:__event.ba_click()'>click事件绑定无效</a>");
        }
    };
    __form.layout();
    </script>
      

  12.   

    学习了。1、首先,原生没有append这个方法,是appendChild(),如果是JQ也不是document.body这样写的。
    2、是__event.ba_click()  而不是__event.baclick() 。
    3、只要_event是顶级作用域,即window下,就可以用,这跟是单独xx.js 还是页面里的script没很大关系
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
    var __event = {
        ba_click : function () {
            alert('aaa');
        }
    };
     
    var __form = {
        layout: function() {
              $("body").append("<a href='javascript:__event.ba_click()'>click事件绑定无效</a>");
        }
    };
    __form.layout();
    </script>
      

  13.   

    这代码什么意思啊? 我把这段代码放到Js文件中整个JS就不行了。
    备注: 我的JS不是放到页面上的,不引用的JS文件。<script src="/js/aaa.js" .../>我好困惑   

    拷贝错了吧,这句代码不可能出错的
      

  14.   

    1、首先,原生没有append这个方法,是appendChild(),如果是JQ也不是document.body这样写的。
    2、是__event.ba_click()  而不是__event.baclick() 。
    3、只要_event是顶级作用域,即window下,就可以用,这跟是单独xx.js 还是页面里的script没很大关系
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
    var __event = {
        ba_click : function () {
            alert('aaa');
        }
    };
     
    var __form = {
        layout: function() {
              $("body").append("<a href='javascript:void(0);' onclick="TestTestsss()" >click事件绑定无效</a>");
        }
    };
    __form.layout();
    </script>
    ----------------------------------------------------------------------------------------------
    回复:
    尝试过了,没有作用。
    页面上增加:<script>
    function TestTestsss() {
      alert('1111');
    }
    TestTestsss();
    </script>
    结果:
      

  15.   

    页面上直接定义的一个方法,(顶级作用域)
    动态加载的DOM对象,还是无法找到。----------------------------------------------------------------
    梳理一下这里的逻辑。
    1、JS动态构建的按钮。(button_A)
    2、(button_A) 单击事件动态构建的按钮 (button_B)
         就是 __form.layout()经过两层动态构建的DOM,是不是这里出的问题啊 ?
      

  16.   

    谢谢各位大神,小弟不才,耽误大家时间了。
    iframe 惹得祸。 
      

  17.   


    var __event = {
        ba_click : function () {
            alert('aaa');
        }
    };
     
    var __form = {
        layout: function() {
      $('body').append("<a href='javascript:__event.ba_click ()'>click事件绑定无效</a>");
        }
    };
    __form.layout();