无法在新创建的元素上绑定事件

时间:2012-01-17 18:34:57

标签: jquery

这里我无法将新创建的html上的click事件绑定为#topics-lists 除了这个新创建的元素之外,我的所有其他代码都正常工作 这是我使用jquery 1.6版本的所有js文件

$('document').ready(function()
{

var val1;
var val2; 

$('#class-lists').find('a').click(function()
{
    val1=$(this).attr('data-class');
    $('#Varclass').attr('value',val1);
});

$('#subject-lists').find('a').click(function()
{
    val2=$(this).attr('data-subject');
    $('#Varsubject').attr('value',val2);
    $.getJSON('http://localhost:8080/data/values/lists?standard='+val1+'&subject='+val2,function(data)
    {
          if(data.result=="Success")
          {
            var aa=[];
            $.each(data.topics,function(key,val){
              console.log(val);
                aa.push('<div class="ui-block-b" ><a data-topic="'+val+'" href="#subtopics" data-transition="slide"><div class="block-c">'+val+'</div></a></div>');

            });
            $('#topics-lists').html(aa.join(''));

          }

    });
});

$('#topics-lists').find('a').bind('click',function(){alert('hi');});


});

请帮助我找到解决方法 感谢您宝贵的时间

2 个答案:

答案 0 :(得分:0)

您可能需要使用live()方法。查看http://api.jquery.com/live/

答案 1 :(得分:0)

你需要在事件 之后将它们绑定到DOM,即

...
if(data.result=="Success") {
...
    $('#topics-lists').html(aa.join(''));
    $('#topics-lists').find('a').unbind('click').bind('click',function(){alert('hi');});
}
..

或者你可以使用jQuery的直播(从1.7开始不推荐使用)