2010-12-21 128 views
0

在兩個不同的視圖中,我有以下兩段代碼。jQuery超鏈接點擊問題

FIRST

<table class="table-list"> 
    <tr class="gridrow"> 
     <td>David Gilmour</td> 
     <td style="width:16px"> 
     <a href="#" rel="/xyz/Contact/Edit/26965" class="editContactLink" title="Modifica"> 
      <img alt="" src="/xyz/_assets/images/edit.png"> 
     </a> 
     </td> 
    </tr> 
    <tr class="gridrow"> 
     <td>Paco De Lucia</td> 
     <td style="width:16px"> 
     <a href="#" rel="/xyz/Contact/Edit/26966" class="editContactLink" title="Modifica"> 
      <img alt="" src="/xyz/_assets/images/edit.png"> 
     </a> 
     </td> 
    </tr> 
</table> 

第二

<div> 
    <a href="#" rel="/xyz/Contact/Edit/26965" class="editContactLink" title="Modifica">David Gilmour</a> 
</div> 
<div> 
    <a href="#" rel="/xyz/Contact/Edit/26966" class="editContactLink" title="Modifica">Paco De Lucia</a> 
</div> 

在這兩種情況下,我使用下面的jQuery片斷

$("a.editContactLink").click(function (event) { 
    event.preventDefault(); 
    //use $(this).attr("rel") to go to the edit page of the related contact element 
}); 

在第一種情況下,我只有一個Ajax調用到了rver而在第二我有兩個阿賈克斯調用都去相同的地址

我在哪裏錯了?

+2

你重新運行代碼,在安裝處理器的兩倍? – 2010-12-21 18:00:34

+0

沒有。代碼是由兩個不同的控制器創建的兩個不同的視圖 – Lorenzo 2010-12-21 18:01:54

回答

1

請確保您的代碼在這裏:

$("a.editContactLink").click(function (event) { 
    event.preventDefault(); 
    //... 
}); 

沒有運行兩次,無論是被另一事件中,或包括兩次首先,等等。例如,如果它是由AJAX裝載,更改$("a.editContactLink")$("a.editContactLink", data)data作爲響應),或使用一個或.live()處理.delegate(),例如:

$("#container").delegate("a.editContactLink", "click", function(event) { 
    event.preventDefault(); 
    //... 
}); 
1

這完全是一個黑客/創可貼,但它會讓你工作。正如尼克所假設的那樣,我毫無疑問地確信你是有約束力的。

$("a.editContactLink").unbind('click').click(function (event) { 
    event.preventDefault(); 
    //use $(this).attr("rel") to go to t... 
}); 
0

這答案就在這裏只是以報告錯誤情形......

我有一個控制器,返回地址

[HttpGet] 
public virtual ActionResult GetAddressBookEntries(int? page) { 
    IEnumerable<AddressBook> list = _manager.GetList(); 
    return PartialView("AddressBookList", list); 
} 

在AddressBookList局部視圖我只是有這樣的代碼

列表
<% foreach (var item in Model) { %> 
    <% Html.RenderPartial("AddressBook", item); %> 
<% } %> 

終於在通訊錄局部視圖我有

<div class="ui-widget-header ui-corner-top" style="height:20px; padding:4px 6px;"> 
    <a href="#" rel='<%: Url.Content("~/Contact/Edit/") + Model.ContactID %>' class="editContactLink" title="Modifica"> 
     <%: Model.FullName %> 
    </a> 
</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("a.editContactLink").click(function (event) { 
      event.preventDefault(); 
      //use $(this).attr("rel") to go to t... 
     }); 
    }); 
</script> 

這是多重綁定的原因。我感動<script ...部分的AddressBookList部分和一切正常......

我厭倦了爲了今天,我覺得.....