+ -
当前位置:首页 → 问答吧 → 有个问题很无奈 这里问问...

有个问题很无奈 这里问问...

时间:2009-03-16

来源:互联网

var html =   "<p id="media1" value=\""+title+"\" type=\""+type+"\">"+title+"</p> ";  
$('#tabs-1').append(html);
我把这段html代码写入<div id="tabs-1">中  当我onclick  <p id="media1"> 时 为什么不能执行下面的clikc事件方法呢?

$('#media1').click(function(){  
     $('#dialog').dialog('open');
     return false;
});

我如果把"<p id="media1"  value="abc"  type="1">abc</p>写死在 <div id="tabs-1">中就可以促发clikc事件方法

作者: fantasy8341   发布时间: 2009-03-16

var html =   "<p id="media1" value=\""+title+"\" type=\""+type+"\">"+title+"</p> ";  

我觉得你这行是否有错误呢?是不是ID用双引号导致没找到该P对象?
试试下面的代码行不?
var html = "<p id='media1' value=" + title + " type=" + type + "> " + title + "</p>";

作者: lonely203   发布时间: 2009-03-16

确定在用click绑定的时候,这段html已经在那个div中了么?

作者: shawphy   发布时间: 2009-03-17

我确认 因为在页面加载后  这段html是显示在div中的了。

作者: fantasy8341   发布时间: 2009-03-17

这个地方id="media1" 用了双引号是我发帖的时候写错了 程序里面是id=\"media1\"

作者: fantasy8341   发布时间: 2009-03-17

能提供更多简化后的测试代码么?
我这里简化后的代码是没问题的,不知道你那里是如何构成的。

<div id="aa" class=""></div>
<script type="text/javascript">
$("#aa").append("<p id=\"xx\">bbb</p>");
$("#xx").click(function(){
    alert(1);
});
</script>

比如是否存在重复id等情况

作者: shawphy   发布时间: 2009-03-17

            //读取xml文件
            $.get("xml/media.xml", function(d){
            $(d).find('book').each(function(i){
                var html ="<p id=\"a"+i+"\">abc</p>";  
                $("#tabs-1").append(html);
                });
            });    
            
            $("#a0").click(function(){
                alert(1);
            });

循环的时候 我alert(html ) 为 <p id="a0">abc</p> 但是点击<p id="a0" >就是不执行click方法,    如果这里我不从xml中取数据 不做循环就可以执行click方法的。 请教?

作者: fantasy8341   发布时间: 2009-03-17

果然是我2楼问你的问题

“确定在用click绑定的时候,这段html已经在那个div中了么?”

你看你绑定的时候,还没从ajax读取完加载到页面中呢!

作者: shawphy   发布时间: 2009-03-17

那么我是应该从ajax读取完加载到页面后再 这样帮定吧
  $("#a0").click(function(){
                alert(1);
     });
那么如何判断加载到页面了呢?

作者: fantasy8341   发布时间: 2009-03-18

写在你的回调函数里啊

作者: shawphy   发布时间: 2009-03-19