Jquery 隐藏AJAX DIV标记。。。问题

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

我有以下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>

永远不会调用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。