我使用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返回我期望看到的内容,但屏幕不显示背景颜色的变化。
谁能告诉我为什么?
欢呼声, 乔治
答案 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中对其进行了编辑,以显示应对格式进行哪些更改。