在我的文档的 HEAD 中,我加载了 jQuery.js 以及 blockUI jQuery 插件。
然后,在 PHP 中,我使用常规 AJAX 将其他 PHP 内容加载到 DIV 中。在原来的 PHP 中,jQuery 和 blockUI 插件工作得很好,但在任何 ajax 加载的 div 中,jQuery 和 blockUI 都什么都不做。没有控制台错误,没有警告 - 什么都没有。
我是一名 jQuery 初学者,我发现的关于这个主题的其他文章都无法让我解决这个问题,所以我正在帮助其他人。在下面的代码中,您会看到我对 live() 进行了一些尝试...
这是加载到 DIV 中的 PHP 文件的顶部
<script type="text/javascript">
$(document).ready(function() {
$('#crazy').live('click',function() {
$.blockUI({ message: $('#question'), css: { width: '275px' } });
});
$('#yes').live('click',function() {
// update the block message
$.blockUI({ message: "<h1>Remote call in progress...</h1>" });
$.ajax({
url: 'wait.php',
cache: false,
complete: function() {
// unblock when remote call returns
$.unblockUI();
}
});
});
$('#no').live('click',function() {
$.unblockUI();
return false;
});
});
</script>
以下是该 PHP 文件的 HTML(加载到 DIV 中):
<input id="crazy" type="submit" value="Show Dialog" />
<div id="question" style="display:none; cursor: default">
<h1>Would you like to contine?.</h1>
<input type="button" id="yes" value="Yes" />
<input type="button" id="no" value="No" />
</div>
在加载 DOM 时,在 AJAX 调用完成之前,您的文档就绪函数就会加载。因此,它仅适用于.live()
调用 AJAX 调用之前存在的元素。
如果要将某些内容应用到 AJAX 调用加载的内容,请为 AJAX 指定一个回调函数,以便在加载完成后应用正确的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)