美好的一天,
我想在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锚点上添加点击事件。那么如何设置点击事件呢?
答案 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
任何id
或class
,那么其中包含链接的任何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);
});