您能否更具体一些(即:代码示例)。您的意思是加载页面中的脚本标签不起作用,即:
<script type="text/javascript" src="jscript"></script>
或者当您将新的 html 加载到 div 中时,您希望附加到 Dom 元素的事件不起作用?如果是这样,您应该使用 jQuery 'on' 方法,因为您添加到页面的元素不会监听您之前附加处理程序的事件。下面是在将新元素附加到 Dom 时将处理程序附加到新元素所需的 jQuery 'on' 方法的重载。
$('#myDiv').on('click', '#loadedPageElement', function(e) {
alert('clicked');
e.preventDefault();
});
第二个参数将为当前匹配给定选择器的元素以及将来匹配该选择器的所有元素附加一个事件处理程序。
你好,我们又见面了,
defer 属性将延迟脚本的执行,直到加载初始页面,我不确定这是您所追求的行为。然后它将在 ('a#view-users') 上设置一个事件处理程序,当单击它时,将允许将 ('view-users.php') 加载到 ('#main-view') 中。如果您的逻辑需要在加载后使用“view-users.php”生成的 html,如果需要附加事件,则需要使用 $.on(),例如:
$(document).ready(function() {
$('a#view-users').click(function() {
$('#main-view').load('view_users.php');
});
$('#main-view').on('click', '#loadedPageElement', function(e) {
alert('clicked');
e.preventDefault();
});
});
or if you just want some code to run then a callback function is sufficient:
$(document).ready(function() {
$('a#view-users').click(function() {
$('#main-view').load('view_users.php',function(){
alert('code running after load of "view_users.php"')
});
});
});
两者都不应该要求您在加载的 php.ini 中内联编写代码。
你好,
只是为了清楚起见是('a#view-users')在初始页面加载中还是由ajax加载的'view_users.php'中的元素?
你好,
我认为你自己和其他一些人提到的问题是,如果你的标题中有脚本,它与通过 ajax 加载到 ('#main-view') 的元素交互,即使你的原始代码使用正确的 Jquery 选择器,新加载的元素将不会被识别为相同的元素,这就是为什么您需要使用回调函数作为加载方法的第二个参数或使用“on”方法的原因。'on' 方法适用于标准 jQuery 事件,包括 'load',即将元素加载到 dom 中。例如
$("#containerElement").on('load','#newlyLoadedElement',function(e){
//Do some stuff when the element'#newlyLoadedElement' is inserted
// into "#containerElement"
})