Javascript 超级简单JQuery问题-刷新静态html
我有以下两个功能非常有效:Javascript 超级简单JQuery问题-刷新静态html,javascript,jquery,Javascript,Jquery,我有以下两个功能非常有效: $(function(){ $('.trash_can a.delete').live('click', function(event) { event.preventDefault(); var link = $(this); $.post(link.attr('data-href'), { promo_id: link.attr('data-promo_id') }, function
$(function(){
$('.trash_can a.delete').live('click', function(event) {
event.preventDefault();
var link = $(this);
$.post(link.attr('data-href'),
{
promo_id: link.attr('data-promo_id')
},
function(data) {
$('#page').html(data.html);
});
console.log('Clicked Delete');
});
});
$(function(){
$('#add-mod-form').bind('ajax:success', function(evt, data, status, xhr){
data = $.parseJSON(data);
// console.log(data.success);
if (data.success == true) {
$('#page').html(data.html);
$('#page box_bc').html()
}
else {
}
});
});
当接收到页面的数据时,我还想重新加载一个静态html元素$(“#page box_bc”)-如何使用Jquery完成这个简单的任务?注意,我已经在上面试过了,但这部分并没有按计划工作
谢谢我不太清楚你想实现什么目标。如果元素是静态的,那么尝试刷新它有什么意义?若它的内容在某种程度上依赖于页面的其他元素,那个么它必须被重建。 您编写的代码失败,因为:
$(“…”).html()
返回该元素的html内容。它对内容没有任何影响。如果您能详细说明代码的上下文和目的,可能会更好 使用:
var $dataHtml=$(data.html);
$('#page box_bc').html($('#page box_bc',$dataHtml));
为什么要访问
.attr('data-*')
而不是.data('*')
?框bc
不是选择器。如果你想实现你想要的,你需要一个有效的选择器。您的标记是什么样子的?请提供一些HTML,“box_bc”是标记名吗?它不一定是静态的。有嵌入式ruby代码。因此,关键是运行可能与JQuery Folks无关的Ruby逻辑如果您感兴趣,该逻辑会计算注释的数量,如果注释小于3,则显示表单,如果注释大于3,则隐藏表单。无论嵌入了什么Ruby代码,都会在将页面发送到客户端之前在服务器上进行解析和处理。一旦页面交付给客户端,刷新页面的特定部分(正如@DarmRet所建议的)肯定不会导致ruby代码的重新处理。只有重新处理ruby代码,才能通过ajax请求从服务器重新获取该部分。