jQuery在删除类属性后在html标记中加载外部页面
我有个问题。在我的主页中,我有以下代码jQuery在删除类属性后在html标记中加载外部页面,jquery,load,Jquery,Load,我有个问题。在我的主页中,我有以下代码 <script> window.ctrl = <?php echo $ctrl; ?> // this return false or true if (! window.ctrl) { $('.grCtrl').remove() } var le = 'somePage.php'; $('#loadingDiv').load(le); </script> <div id='originalDiv'
<script>
window.ctrl = <?php echo $ctrl; ?> // this return false or true
if (! window.ctrl) {
$('.grCtrl').remove()
}
var le = 'somePage.php';
$('#loadingDiv').load(le);
</script>
<div id='originalDiv'>
<h3>
Original div is
<span class='grCtrl'>this</span>
</h3>
</div>
<div id='loadingDiv'></div>
window.ctrl=//此返回值为false或true
如果(!window.ctrl){
$('.grCtrl').remove()
}
var le='somePage.php';
$('#loadingDiv')。加载(le);
原来的部门是
这
现在是somepage.php:
<div id='somePageDiv'>
<h3>
Loaded div is
<span class='grCtrl'>this</span>
</h3>
</div>
加载的div是
这
所以问题在于,在原始div(在主页中)中,remove()方法在#loadingDiv中加载的页面中工作,但不工作
如果有人能解释一下原因,我将不胜感激。
非常感谢。
Leo我认为这是因为在运行删除操作后正在加载它 试试这个
<script>
window.ctrl = <?php echo $ctrl; ?> // this return false or true
if (! window.ctrl) {
$('.grCtrl').remove()
}
var le = 'somePage.php';
$('#loadingDiv').load(le, function(){
if (! window.ctrl) {
$('.grCtrl').remove()
}
});
</script>
window.ctrl=//此返回值为false或true
如果(!window.ctrl){
$('.grCtrl').remove()
}
var le='somePage.php';
$('#loadingDiv').load(le,function(){
如果(!window.ctrl){
$('.grCtrl').remove()
}
});
那么,您是否希望代码删除尚未加载到DOM中的元素?只需将remove放在加载之后,它就会像您所说的那样工作良好,因为它是动态加载的内容,所以您需要使用事件委派.on()
或.live()
或.delegate()
或.bind()
…我更喜欢.on()
,因为其他版本不推荐使用。upss:|。。。我现在明白了:(我太累了。真丢脸!!好吧,我们可以使用事件委派而不是重复相同的代码。谢谢!我接受这个答案,但我使用@Dipesh建议的事件委派。@DipeshParmar你的观点很有说服力,但我们可以看到一个例子吗?