jQuery如何在div中设置点击href?

时间:2010-05-18 08:30:10

标签: javascript jquery html dom

美好的一天,

我想在div容器中的每个锚元素上设置click事件。以下是我想要做的一个例子:

---HTML---
<div id="my-container">
    <a href="page1.html">page1</a>
    <a href="page2.html">page2</a>
    <a href="page3.html">page3</a>
</div>

---- jQuery ----
$("#my-container a").click(function() {
    var link = $(this).attr("href");
    $("#my-container").load(link);
});

我想要做的是让我处理href点击的加载事件并将其加载到同一个容器中。这必须完成没有id,class 属性,这些属性不适用于那些hrefs。问题在于: $(“#my-container a”)。任何帮助,将不胜感激!感谢

更新

人们似乎没有找到我想问的问题。我再说一遍自己。 $(“#my-container a”)&lt; ----不会在href锚点上添加点击事件。那么如何设置点击事件呢?

5 个答案:

答案 0 :(得分:6)

试试这个,不确定你是否遗漏了任何标签,所以我把整个事情都放在了:

<script type="text/javascript">
     $(document).ready(function(){
        $("#my-container a").click(function(event) {
            alert('test');
            var link = $(this).attr("href");
            $("#my-container").load(link);

            event.preventDefault();
        });
     });

</script>

答案 1 :(得分:1)

您忘记引用href字符串文字:

var link = $(this).attr("href");
                        ^    ^

此外,您还需要取消click事件的默认行为。目前,您的事件处理程序将会触发,但您不会看到结果,因为浏览器会继续按照您单击的链接进行操作。添加return false;作为事件处理函数的最后一行以取消此行为。

答案 2 :(得分:0)

你可以这样做:

$(function(){
    $("#my-container > a").click(function() {
        var link = $(this).attr('href');
        $('#my-container').load(link);
        return false;
    });
});

但如果你的意思是你不想给div任何idclass,那么其中包含链接的任何div也会受到影响。因此,您至少应该将id提供给您要加载内容的div

答案 3 :(得分:0)

添加return false;

$("#my-container a").click(function() {
    var link = $(this).attr("href");
    $("#my-container").load(link);
    return false;
});

答案 4 :(得分:0)

您是否尝试使用bind功能:

$("#my-container a").bind("click", function() {
    var link = $(this).attr("href");
    $("#my-container").load(link); 
});