2010-02-03 52 views
3

我有超鏈接,全部命名爲'mylink'。他們都應該發射相同的事件,但只有名爲「mylink」的第一個元素實際上會觸發。我的代碼如下:只針對第一個命名元素的jQuery事件

$(document).ready(function() { 
     $("#formID").validationEngine() 
     $('#mylink').click(function(e){ 
      var goto = $(this).attr('href'); //get the url 
      $.ajax({ 
       url: goto 
      }); //execute the href 
      e.preventDefault(); //prevent click 
      $('#mylink').parent().parent().fadeOut("slow"); 
     }); 
    }) 

我在哪裏出錯了?

+0

@Josh:批評可以更具建設性。 – Sampson 2010-02-03 22:31:44

回答

5
$(function(){ 
    $("#formID").validationEngine(); // don't forget your semi-colons 
    $(".mylink").click(function(e){ // ID's should be unique, use classes instead 
    e.preventDefault(); 
    $.ajax({ url: $(this).attr("href") }); 
    $(this).parent().parent().fadeOut("slow"); // refer to this as 'this' 
    }); 
}); 
+0

完美,謝謝。 – 2010-02-03 22:28:48

+0

@GeorgeJohnston:記住'id ='foo''應該只出現在一頁上。但'class ='foo''可以出現很多次。所以你只能有一個'',但是很多''。祝你好運! – Sampson 2010-02-03 22:29:48

7

您不能重複使用「id」值。給定的「ID」只能在頁面上使用一次。

如果需要影響多個元素,使用「類」成分:

<div id="uniqueString" class="makeMeMoo makeMePurple makeMeClickable"> 
    <!-- whatever --> 
</div> 
2

你應該改變他們的一類。

Read this

+0

如在,Link? – 2010-02-03 22:23:27

+0

不,如Link 2010-02-03 22:27:14

1

我不知道,這一切都讓更有效率,但同時你在那裏,它可能不是一個壞主意,通過元素(#myLink的),還引用了該鏈接,否則jQuery的可能有搜索整個文檔的類。

$('a.mylink').click(function(e) {