【问题标题】:update css on AJAX loaded html在 AJAX 加载的 html 上更新 css
【发布时间】:2014-06-05 22:18:45
【问题描述】:

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

我在为新加载的元素设置 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个空格,运算符之间应该有空格。阅读本文了解更多信息:github.com/airbnb/javascript

标签: html css ajax dynamic


【解决方案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');
  });
}        

并相应地更新后端。

【讨论】:

    【解决方案2】:

    你错过了行尾的分号

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

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

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多