var options = '';
  for (var i = 0; i < j.length; i++) {
  //alert(j[i].optionValue);
options += '<li class="grid_2"><img src="images/bookSmall.jpg" /><br />'+j[i].bookName+'<br /><a id="test" href="#"><img src="images/publish.jpg" /></a></li>';
  }
  $("ul#list").css('width',j.length*160+'px');
  $("ul#list").html(options);
ul#list里的内容改变之后,当点击超链接a的时候,让一个对指定的标签内容进行修改。
注:对于原来html里有的标签是很好操作的,可对于用jq生成的标签,难道就不能进行监控,$("a#click").click都没有反应我急死了!!!

解决方案 »

  1.   

    你在生成的页面中查看源代码,看你用JQ动态生成的代码那是什么。然后再用JQ控制没问题的。急也没用,冷静下来解决问题。
      

  2.   

    我贴段简单的代码吧:
    <!DOCTYPE html>
    <html>
    <head>
      <style>
      div,span {
        width: 100px;
        height: 40px;
        float:left;
        padding: 10px;
        margin: 10px;
        background-color: #EEEEEE;
      }
      </style>
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    </head>
    <body>
      <div class="notMe">div class="notMe"</div>
    <button id="demo2">Run</button>
      <div style="display:none;" id="hid" class="myClass"></div>
      <span id="myClass">span class="myClass"</span>
    <script>
    $(function(){
    $("#myClass").click(function(){
    $("#hid").html('<button id="demo1">Run</button>');
    $("#hid").show();
    });
    $("#demo2").click(function(){
    alert("yes");
    });
    $("#demo1").click(function(){
    alert("yes");
    });
    });
    </script></body>
    </html>
    我点<button id="demo2">Run</button>有反应。
    点jq生成的<button id="demo1">Run</button>就是没有反应
      

  3.   

    我看的一个实例代码有个<a href="javascript:void(0);" id="se-031" class="j a_del_sele">内容</a>难道是和javascript:void(0);有关系?还是对该内容进行了监视?
      

  4.   

    这里是那段示例jq代码:
    TC = new Object();
    TC.EventMonitor = function(){
        this.listeners = new Object();
    }
    TC.EventMonitor.prototype.broadcast=function(widgetObj, msg, data){
        var lst = this.listeners[msg];
        if(lst != null){
            for(var o in lst){
                lst[o](widgetObj, data);
            }
        }
    }
    TC.EventMonitor.prototype.subscribe=function(msg, callback){
        var lst = this.listeners[msg];
        if (lst) {
            lst.push(callback);
        } else {
            this.listeners[msg] = [callback];
        }
    }
    TC.EventMonitor.prototype.unsubscribe=function(msg, callback){
        var lst = this.listener[msg];
        if (lst != null){
            lst = lst.filter(function(ele, index, arr){return ele!=callback;});
        }
    }
    var event_monitor = new TC.EventMonitor();
    function load_event_monitor(root) {
        var re = /a_(\w+)/;
        var fns = {};
        $(".j", root).each(function(i) {
            var m = re.exec(this.className);
            if (m) {
                var f = fns[m[1]];
                if (!f) {
                    f = eval("TC.init_"+m[1]);
                    fns[m[1]] = f;
                }
                f && f(this);
            }
        });
    }
      

  5.   

    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js"></script>
      

  6.   

    你的代码没问题,但是Google被杯具,不多解释
      

  7.   

    说一下原理也行,我该google什么问题都不好形容
      

  8.   

    <button id = "demo2">是动态生成的,生成后绑定了onclick事件,所以没问题。我这里测试了一下,使用外联google CDN上的jQ文件失败,换成M$的外联文件就可以,代码运行也没问题,对于这种动态绑定事件,最好使用jQuery的live方法,比如:
    $(document).ready( function() {
        $("#demo1").live('click', function() { alert('OK'); });
        $("#myClass").click(function(){
                $("#hid").html('<button id="demo1">Run</button>');
                $("#hid").show();
        });
    });
      

  9.   

    .live()方法说明:
    http://api.jquery.com/live/
      

  10.   

    为什么我的本地jq文件对live()方法也失效。。