2012-06-29 44 views
2

當用戶單擊表格行時,我使用jQuery來選擇其中一個單元格中的鏈接。這是相當標準的,從我的搜索。使用jQuery/ajax選擇表格行

$(document).ready(function() { 
    $('table.timecarddetail tr').click(function() { 
      var href = $(this).find("a").attr("href"); 
      if (href) { 
       window.location = href; 
      } 
     }); 
    }); 

注意:table.timecarddetail是表類。

嵌入式鏈接本質上是一個ajax調用,因此它不會執行完整回發並且頁面不刷新。我的問題是該事件觸發一次,但隨後的點擊被忽略。

技術細節:我使用的是VS2010,每個鏈接指向傳入記錄ID的相同過程。一個模式彈出擴展面板填充該記錄的數據,然後顯示與panel.show。

我在這裏做錯了什麼?

+0

你使用kannel嗎? – Hardik

+1

你使用的是什麼版本的jQuery? – izb

+0

我不熟悉kannel ....至於jquery,1.6。 –

回答

0

我在過去實現JQueryUI時遇到了同樣的問題。腳本管理器在ajax回發後銷燬javascript。你可以通過在函數進行包裝,把它重新開始,你的Ajax調用結束

jQuery的

$(document).ready(function() { 
    setRows(); 
}); 

function setRows() { 
$('table.timecarddetail tr').click(function() { 
     var href = $(this).find("a").attr("href"); 
     if (href) { 
      window.location = href; 
     } 
    }); 
} 

解決這個問題然後在頁面中把這個腳本的經理後

<asp:ScriptManager runat="server"> 
</asp:ScriptManager> 
<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_beginRequest(BeginRequestHandler); 
    prm.add_endRequest(EndRequestHandler); 
    function BeginRequestHandler(sender, args) { 
     setRows(); 
    } 
    function EndRequestHandler(sender, args) { 
     setRows(); 
    } 
</script> 

希望這會有所幫助。

+0

你搖滾!這固定了它。我從來沒有,永遠不會想到這一個! –