2012-02-08 101 views
-1

我想设置一个JavaScript点击探测器。
如果用户点击第2部分而没有点击“link1”或“link2”,会弹出一个提示,告诉他点击其中一个链接。
如果该人点击一个链接,他应该被允许访问谢谢页面。
我的问题是,即使他点击了其中一个链接,它也不会让用户通过。Javascript链接点击探测器与警报窗口

<a id="postos" href="http://link1.com">Link1</a><br> 
<a id="postos" href="http://link2.com">Link2</a><br> 
<script src="http://code.jquery.com/jquery-1.5.1.min.js"></script> 
<script> 
    $("#postos").click(function() { 
     $("#linkos").attr('href', 'http://example.com'); 
    }); 
</script> 

Part 2 Click <a id="linkos" href='javascript:window.alert("please click a link");'> Here </a> 
+0

听起来很垃圾。 – 2012-02-08 20:04:28

+0

@Diodeus赛门铁克同意:http://www.symantec.com/connect/blogs/survey-scammers-moving-pinterest – Benry 2012-03-13 22:12:27

+0

哇,抓到了行为! – 2012-03-13 22:25:12

回答

1

您不能有两个具有相同ID的元素。

它更改为一类:

<a class="postos" href="http://link1.com">Link1</a><br> 
<a class="postos" href="http://link2.com">Link2</a><br> 

$(".postos").click(function() { 
      $("#linkos").attr('href', 'http://example.com'); 
    }); 
0

是无效的。有多次相同的ID。

类添加到您的第一个链接,并使用类选择它们:

<a class="link" href="http://link1.com">Link1</a><br> 
<a class="link" href="http://link2.com">Link2</a><br> 

$(".link").click(function (e) { 
    $("#linkos").attr('href', 'http://example.com'); 
}); 

DEMO

+0

我想这些链接是广告,所以他不想“禁用”它们。 – gdoron 2012-02-08 20:27:31

+0

不,他们不是广告 – 2012-02-08 20:28:06

+0

事实上,他们很可能会被访问​​。我会改变这一点。 – 2012-02-08 20:31:00

0

ID必须是唯一的,所以更好的用户等级:

<a class="postos" href="http://link1.com">Link1</a><br> 
<a class="postos" href="http://link2.com">Link2</a><br> 

JS

$(".postos").click(function() { 
     $("#linkos").attr('href', 'http://example.com'); 
}); 
0

id必须是唯一的,变化从ID到class

HTML:

<a class="postos" href="http://link1.com">Link1</a><br> 
<a class="postos" href="http://link2.com">Link2</a><br> 

<a id="linkos" href='http://example.com'> Here </a> 

的jQuery:

$('.postos').click(function(){ 
     $(this).data('clicked', 'yes'); 
    }) 

$('#linkos').click(function(){ 
     if ($('.postos[data-clicked="yes"]').length == 0) 
     { 
      alert("please click a link"); 
      return false; 
     } 
    });