2012-01-17 5 views
0

здесь я не могу связать событие click на моем недавно созданном html в виде # тем-списков мой все другой код работает исправно, за исключением того, что этот вновь созданный элемент это мой все JS файл им с помощью Jquery 1.6 версииНевозможно связать событие с новым созданным элементом

$('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() '? Не нужно использовать '.attr()' для 'value' и' data- * '! – ThiefMaster

+0

HTML, который сопровождает ваш Javascript, всегда полезен, поскольку он дает лучшее представление о том, как код должен взаимодействовать с элементами, и правильные селекторные функции. –

ответ

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)

Смежные вопросы