Jquery 隐藏AJAX DIV标记。。。问题
我有以下jQuery代码:Jquery 隐藏AJAX DIV标记。。。问题,jquery,Jquery,我有以下jQuery代码: $('a[rel=close]').click(function() { alert('Close click!'); $('div#purchasePanel').hide(); }); 这用于: <div id="purchasePanel"> <a href="#close" rel="close"><li> Close </li></a> </div&g
$('a[rel=close]').click(function() {
alert('Close click!');
$('div#purchasePanel').hide();
});
这用于:
<div id="purchasePanel">
<a href="#close" rel="close"><li> Close </li></a>
</div>
永远不会调用alert()
DIV内容是使用AJAX显示的,这很好。只是这个讨厌的关闭按钮拒绝…很可能是在注册处理程序后添加了链接 解决方案是使用:
很可能是在注册处理程序后添加链接 解决方案是使用:
如果DIV是使用AJAX生成的,那么您应该
live
而不是单击如果DIV是使用AJAX生成的,那么您应该live
而不是单击,如果您的脚本标记在处理程序可能没有连接的链接之前。试试这个:
<script>
// wait until everything has loaded
$(document).ready(function(){
$('a[rel=close]').click(function(e){
e.preventDefault(); // needed to stop from loading the link
alert('Close click!');
$('#purchasePanel').hide();
});
});
</script>
//等到所有东西都装好了
$(文档).ready(函数(){
$('a[rel=close]')。单击(函数(e){
e、 preventDefault();//需要停止加载链接
警报(“关闭单击!”);
$(“#purchasePanel”).hide();
});
});
如果脚本标记位于链接之前,则处理程序可能未连接。试试这个:
<script>
// wait until everything has loaded
$(document).ready(function(){
$('a[rel=close]').click(function(e){
e.preventDefault(); // needed to stop from loading the link
alert('Close click!');
$('#purchasePanel').hide();
});
});
</script>
//等到所有东西都装好了
$(文档).ready(函数(){
$('a[rel=close]')。单击(函数(e){
e、 preventDefault();//需要停止加载链接
警报(“关闭单击!”);
$(“#purchasePanel”).hide();
});
});
您可能需要删除中的,这可能无效,因为从技术上讲,单击不是在a上,而是在li上。当您在firebug控制台中添加$('a[rel=close]')时,会得到什么?它会冒出气泡。但是你是对的,那根本不属于那里!不太相关:与其使用选择器div#purchasePanel
,不如简单地使用#purchasePanel
——jquery不必遍历所有div!我想它足够聪明,可以看到使用了一个ID,并且只检查找到的元素是否有正确的标记,而不是遍历标记并检查ID。您可能需要删除内部的 ,这可能无效,因为从技术上讲,单击不是在a上,而是在li上。添加$('a[rel=close]'时会得到什么在firebug控制台中?它将冒泡。但是你是对的,那根本不属于那里!不太相关:与其使用选择器div#purchasePanel
,不如简单地使用#purchasePanel
——jquery不必遍历所有div!我想它足够聪明,可以看到使用了一个ID,只检查找到的元素是否有正确的标记,而不是遍历标记并检查ID。