2010-07-22 75 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