jquery事件处理链接

use*_*854 3 javascript jquery

我开始使用jquery并按照此处的官方网站上的教程进行操作. http://docs.jquery.com/How_jQuery_Works#jQuery:_The_Basics

我在文档就绪中标记为启动代码的部分中.如果你注意到,它们提供了两个例子.在将您带到jquery站点之前会弹出一个警告框,另一个警告框会阻止您进入该站点.

假设我想要两个链接.一个出现警告框,然后单击"确定",然后进入jquery的站点,另一个出现警告框,但阻止你进入jquery的站点.我只是希望能够找出不同链接的不同响应.我需要给它一些身份证吗?

这是代码.

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
<title>Demo</title>
  </head>
  <body>
<script src="jquery.js"></script><br/>
<a href="http://jquery.com/" id="1">jQuery</a><br/> <!--first link: will display message and then proceed to site -->
<script>
 $(document).ready(function(){
    $("a#1").click(function(event){
      alert("Thanks for visiting!");
    });
  });
</script>
<a href="http://jquery.com/" id="2">jQuery</a> <!-- second link: message appears and does not continue to site -->
<script>
   $(document).ready(function(){
      $("a#2").click(function(event){
        alert("As you can see, the link no longer took you to jquery.com"); 
        event.preventDefault();
      });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

编辑 - 将id添加到锚点.谢谢你们,它的确有效.

Sam*_*son 6

是的,使用id是引用锚点的最直接方式.

<a id="anchor1" href="..">anchor 1</a>
Run Code Online (Sandbox Code Playgroud)

允许

$("#anchor1").click(function(event){
   alert("Thanks for visiting!");
   event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 5

是的,$('a')选择所有锚元素('a'-tags).如果你全部选择它们,就像你没有进一步指定选择器一样,事件处理程序将被挂钩到所有这些.因此,您可以通过添加ID来选择不同的锚点,如其他答案中所述:

<a id="anchor1" href="..">anchor 1</a>
Run Code Online (Sandbox Code Playgroud)

允许

$('#anchor1').click(...);
Run Code Online (Sandbox Code Playgroud)

或者您可以通过使用a-tag的其他属性来细化选择,例如ref-attribute或data-*属性,如下所示:

<a rel="preventme" href="..">anchor 1</a>
Run Code Online (Sandbox Code Playgroud)

允许

$('a[rel="preventme"]').click(...);
Run Code Online (Sandbox Code Playgroud)

<a data-mode="disable-link" href="..">anchor 2</a>
Run Code Online (Sandbox Code Playgroud)

这使得

$('a[data-mode="disable-link"]').click(...)
Run Code Online (Sandbox Code Playgroud)

您甚至可以通过协议选择所有外部链接,例如

$("a[href^='http://']").click(...);
Run Code Online (Sandbox Code Playgroud)