我有一个带iframe的jQuery fancybox。它从.php加载代码。 在.php文件中,我有一个按钮,点击后会发一个帖子。
$(".next").click(function() {
$.post("update.php", {page: $(this).attr('data-page')}, function(success){
$("#dialog").html(success);
}
);
});
问题在于,当我第一次点击它时,它会加载html,但是它第二次不起作用。似乎jQuery没有第二次加载,因为我正在使用星级评级,并且星级评级也没有在那里呈现。
最初我的对话框中有一些HTML代码。
为了说明,这里是我的页面结构。我有一个main.php。我在main.php中有一个按钮,当我点击启动iframe花式框时。这个花哨的盒子的内容是从.php文件加载的,名为content.php。在content.php里面,我有另一个按钮,当点击它时会发一个帖子到loader.php。 loader.php回应了一堆html。要发布的jQuery代码位于content.php当我第二次点击iframe内的按钮时,它什么都不做
答案 0 :(得分:1)
而不是点击,你必须使用直播。将第一行更改为:
$(".next").live('click', function() {
答案 1 :(得分:1)
好吧,Fancybox真的只是在当前内容上加载一个div,所以如果在设置DOM之后该div的内容(Fancybox“对话框”)发生了变化(换句话说,页面加载完毕)那么jQuery没有将事件附加到新内容。您必须修改代码才能使用.live()
函数。