在AJAX加载的html上更新css

时间:2014-04-21 19:24:24

标签: html css ajax dynamic

我使用JQuery从AJAX加载HTML。然后我在新加载的HTML中的某些元素上触发click事件。

我在新加载的元素上设置css时遇到问题。

这是代码......

function updateScreen(year, month) {
  $.ajax({
    url:'ajax_php/get_year_data.php',
    data: 'year=any',
    type: 'post',
    success: function(data) {
      $('.top-container').html(data);    

      // highlight year
      $("#" + year).click();

      // and month 
      $("#" + year + ' .' + month).click(); 

      $("#" + year + ' .' + month).css('background-color', convertHex('#9FC7F5', 20))
      console.log($("#" + year + ' .' + month).css('background-color'));
    } 
  });  
}

console.log返回我期望看到的内容,但屏幕不显示背景颜色的变化。

谁能告诉我为什么?

欢呼声, 乔治

2 个答案:

答案 0 :(得分:1)

你为什么要在get_year_data.php上发帖?
由于这是一个getter请求,因此执行GET会更加RESTful。
你可以试试这个,因为它使用了更新的语法:

function updateScreen(year, month) {
  $.ajax({
    type: 'POST',
    url: '/ajax_php/get_year_data.php',
    data: {year: 'any'}
  }).done(function(data) {
    $('.top-container').html(data);
    $('#'+year+' .'+month).css('background_color', 'blue');
  });
}        

并相应地更新后端。

答案 1 :(得分:0)

你错过了行尾的分号

$("#" + year + ' .' + month).css('background-color', convertHex('#9FC7F5', 20))

您还应该考虑正确格式化代码 - 我在OP中对其进行了编辑,以显示应对格式进行哪些更改。