Javascript jQuery如何在div中设置click-on href?

Javascript jQuery如何在div中设置click-on href?,javascript,jquery,html,dom,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

你好

我想在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);
});
--HTML---
----jQuery----
$(“#我的容器a”)。单击(函数(){
var link=$(this.attr(“href”);
$(“#我的集装箱”).load(链接);
});
我想做的是让我处理href单击的加载事件,并将其加载到同一个容器中。这必须在没有id的情况下完成,类属性对于该HREF不可用。问题在于:$(“#我的容器a”)。任何帮助都将不胜感激!谢谢

更新


人们似乎对我想问的问题没有把握。我再说一遍$(“#我的容器a”)您忘记引用
href
字符串文字:

var link = $(this).attr("href");
                        ^    ^
此外,您还需要取消单击事件的默认行为。当前,您的事件处理程序将启动,但您将看不到结果,因为浏览器将继续跟踪您单击的链接。添加一个
返回false作为事件处理函数的最后一行来取消此行为。

您可以执行以下操作:

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

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

添加
返回false

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

试试这个,我不确定你是否丢失了任何标签,所以我把整个东西都放进去了:

<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>

$(文档).ready(函数(){
$(“#我的容器a”)。单击(函数(事件){
警报(“测试”);
var link=$(this.attr(“href”);
$(“#我的集装箱”).load(链接);
event.preventDefault();
});
});

您是否尝试过使用
绑定功能:

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

修正了这个问题,但这是因为我很快就为这个问题写了这个简单的例子。但主要问题不在于此:)@faya:请参阅我的更新(或其他任何似乎指出缺少
return false
的答案)。问题在于在容器内的锚上设置事件处理程序:)@faya:有了两个更正,它在我的机器上运行良好。问题出在代码的其他地方。开始一行一行地把它分开,以找到罪魁祸首。您是否在页面中包含jquery文件?是的,其他所有jquery函数都可以正常工作。我猜jQuery在事件处理程序设置时没有看到这些锚元素。可能是因为它们稍后加载到dom?但是我尝试了$.live函数,它应该可以解决这个问题。没什么…对于未来不确定事件是否已设置的困难,我强烈建议使用Visual Event:。这将在页面上显示所有附加的javascript函数。我的意思是锚没有id或类属性。这是因为我的分页框架不允许我自动向生成的锚添加id或类属性。正如您所看到的,div有id属性。我没有得到任何错误。我为测试设置了$(“#我的容器>a”)。单击(函数(){alert('test')});。我单击链接,警报不会被调用。据我所知,这意味着没有设置单击事件。我也尝试过使用$.live,但似乎是一样的…@faya:确保您已经包含jquery文件,并且路径正确。