我有一个奇怪的问题。 我目前正在使用PHP,AJAX和MySQL加载帖子。代码结构本身如下所示:
--- main.js ---
$(window).load(function(){
initAjax();
});
--- ajax.js ---
function initAjax(){
// Toggles a navigation
$(document).on('click', '.btn.open', function(){
... toggles a window ...
});
// Add new posts
$(document).on('click', '.btn.refresh', function(){
$.ajax({
... ajax stuff ...,
success: function(html){
// Show new posts
$('.post_container').prepend(html);
}
});
});
}
当我添加新帖子时,他们会显示,但我无法点击.btn.open - 不应该'on()'修复此问题吗?当我转到谷歌Chrome控制台时。
有人知道解决问题的潜在方法吗?
已修复! @ cmorrissey通过将$(文档)替换为$('body')找到了一个小解决方案
这个修补程序似乎不是一个完美的解决方案,因为$(文档)通常必须工作!由于我想要 clean 代码,我将完全尝试@ Potherca的Short, Self Contained, Correct, Example方法,我可能会以这种方式找到解决方案。的由于
答案 0 :(得分:1)
您需要使用'body'
或document.body
代替document
。
$('body').on('click', '.btn.refresh', function(){
$.ajax({
... ajax stuff ...,
success: function(html){
// Show new posts
$('.post_container').prepend(html);
}
});
});
原因:向正文添加内容不会冒泡到文档级别(http://bugs.jquery.com/ticket/11621),看起来您也可以使用window