2010-07-22 76 views
1

我使用這個片段來顯示一個對話框。不過這很有效:標題只會在第一次點擊表格單元格時設置。重新加載頁面後,標題被設置 - 一次。循環往復......jquery的attr函數只能工作一次

$(document).ready(function() { 
    $("td[id^='_ctl0_tbl_content_reportid_']").click(function() { 
     var tokens = this.id.split('_'); 
     var last_index = tokens.length - 1; 
     var _dialog = $("#reportid_dialog_" + tokens[last_index]); 
     var _title = _dialog.attr("title"); 

     _dialog.dialog({ 
      modal: true, 
      closeText: 'Hide', 
      width: 450, 
      title: _title 
     }); 
    }); 
)}; 

我使用jQuery 1.4.2使用jQuery UI的1.8.2 也許還有人告訴我什麼,我做錯了。

回答

3

dialog()將您傳遞給它的元素移動,以便它不再與選擇器匹配。可能是這樣嗎?

+0

你是正確的,這將導致ID的爭食。單元格內的div在第一次點擊後消失。 – tfl 2010-07-22 08:46:05

+0

我將標題移出div到下一個單元格的新div中。現在它可以工作。 – tfl 2010-07-22 09:05:19

+0

最後一條評論:變量_dialog包含的不止是(無效)屬性標題,而是對話框顯示的整個文本。雖然Firebug告訴我整個div已經消失,但這段文字總是在那裏。 – tfl 2010-07-22 09:10:14

2

我認爲你會遇到雙選擇器問題。由於您選擇:

$("#reportid_dialog_" + tokens[last_index]); 

第二次你點擊表格單元格並調用對話框()存在的#reportid_dialog_ 2種情況下,您嘗試設置ATTRS