你可以更具体(即:代码示例)。你的意思是你加载的页面内部的脚本标记不工作,即:
<script type="text/javascript" src="jscript"></script>
,或者你想附加到DOM元素的事件,当您加载新的HTML到DIV不工作?如果是这样的话,您应该使用jQuery的'on'方法,因为您要添加到页面的元素不会监听您之前附加处理程序所处理的事件。下面是jQuery'on'方法的重载,当你将它们附加到Dom时,将处理程序附加到新元素上。
$('#myDiv').on('click', '#loadedPageElement', function(e) {
alert('clicked');
e.preventDefault();
});
第二个参数将附加的事件处理程序既在本,并且还用于在未来选择匹配的所有元素的给定的选择匹配元素。
嗨再次,
defer属性会直到初始页面加载延迟脚本的执行,我不知道这是你以后的行为。然后,它会在('a#view-users')上设置一个事件处理程序,当它被点击时它将允许('view-users.php')加载到('#main-view')中。如果您有需要与一旦加载,您将需要使用$。对()的“视图users.php”生成的HTML工作逻辑,如果一个事件的安装是需要如:
$(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。
您好,
只是为了清楚起见,是(“一个#视图用户”)在初始页面加载或在“view_users.php”由AJAX加载的元件?
嗨,
我想通过自己的暗示和其他一些人是你所遇到的问题,如果你有你的头脚本与被加载到('#主视图元素交互'),即使您的原始代码使用正确的Jquery选择器,新加载的元素也不会被识别为相同的元素,这就是为什么您需要使用回调函数作为加载方法的第二个参数或使用'on'方法。 'on'方法与标准的jQuery事件一起工作,包括'load',即将一个元素加载到dom中。例如
$("#containerElement").on('load','#newlyLoadedElement',function(e){
//Do some stuff when the element'#newlyLoadedElement' is inserted
// into "#containerElement"
})
请更清楚地说明你的问题。 – 2013-04-09 09:44:31
你只是将新的HTML内容加载到一个div中,或者你是否正在讨论将整个新页面加载到iframe中? – 23tux 2013-04-09 09:44:54
对不起,我会尝试解释得更清楚。我在头文件中加入了一个脚本,如,当我点击一个链接时,它会将一个外部php文件加载到div中。之后,该div中没有任何内容可以使用附加的脚本 – Neil 2013-04-09 10:19:19