2012-01-17 76 views
0

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

$('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');}); 


}); 

请帮我找到出路呢 感谢您的宝贵时间

+0

您知道' .val()'和'.data()'?不需要为'value'和'data- *'使用'.attr()'! – ThiefMaster 2012-01-17 18:37:29

+0

伴随您的Javascript的HTML总是有帮助的,因为它提供了代码应该如何与元素交互的更好视图,以及使用的正确选择器。 – 2012-01-17 18:48:01

回答

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不赞成使用)

相关问题