2010-04-23 33 views
15

Tôi có đoạn mã sau:Làm thế nào để thay đổi tiêu đề div sử dụng jquery

<div id="DivPassword" title="test" > 

Tôi muốn thay đổi tiêu đề div và tôi có đoạn mã sau:

function ChangeAttribute() { 
     $("#DivPassword") 
      .attr('title', 'Photo by Kelly Clark'); 
     $('#DivPassword').dialog('open'); 
     return false; 
    } 

Khi hộp thoại được mở ra, tiêu đề vẫn còn kiểm tra! nếu tôi không gán bất kỳ tiêu đề nào cho div, hộp thoại sẽ không hiển thị bất kỳ tiêu đề nào. Làm thế nào tôi có thể sửa nó?


function ChangeAttribute() { 
     $("#DivPassword") 
      .attr('title', 'Photo by Kelly Clark') 
      .dialog('open'); 

     alert($("#DivPassword").attr('title')); 
    } 

$('#DivPassword').dialog({ 
      autoOpen: false, 
      width: 800, 
      buttons: { 
       "Cancel": function() { 
        $(this).dialog("close"); 
       }, 
       "Accept": function() { 
       alert($(this).attr('title')); 
        $(this).dialog("close"); 
       } 
      } 
     }); 

<script type="text/javascript"> 
    var Dtitle; 
    $(function() { 
     $('#DivPassword').dialog({ 

      autoOpen: false, 
      width: 800, 
      title : Dtitle, 
      buttons: { 
       "Cancel": function() { 
        $(this).dialog("close"); 
       }, 
       "Accept": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 

    function ChangeAttribute(name) { 
     $("#DivPassword") 
      .attr('title', name) 
      .dialog('open'); 
     Dtitle = $("#DivPassword").attr('title'); 
     alert(Dtitle); 
    } 


</script> 

Trả lời

1

Cảm ơn tất cả các câu trả lời.

Các $('#DivPassword').dialog({ phải được sau .dialog('open');

Cách đơn giản nhất là để làm như sau:

$("#DivPassword") 
      .dialog('open'); 
     $('#DivPassword').dialog({ 
      autoOpen: false, 
      title: $('#DivPassword').attr('title') + name, 
      width: 400, 
      buttons: { 
       "Cancel": function() { 
        $(this).dialog("close"); 
       }, 
       "Accept": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
1

Các bạn đã thử bất kỳ đề xuất đưa ra ở đây: How to change an element’s title attribute using jQuery?

Có vẻ như bạn đang làm những gì câu trả lời được chấp nhận gợi ý. Nếu điều này không làm việc, có lẽ những người khác sẽ.

+0

Tôi khá bối rối, không có câu trả lời nào ở trên có hiệu quả! – learning

0

Có vẻ như plugin của bạn đang đọc tiêu đề trước khi nó được chuyển đến chức năng ChangeAttribute đó. Mã bạn đã đăng chắc chắn sẽ thay đổi thuộc tính tiêu đề, do đó, có điều gì khác đang diễn ra đằng sau hậu trường.

Ngoài ra, khi tôi ở đây, đừng quên sử dụng chuỗi. Hầu hết các hàm trong jQuery trả lại cùng một đối tượng một lần nữa:

$("#DivPassword").attr('title', 'Photo by Kelly Clark').dialog('open'); 

// or like this, perhaps easier to read: 

$("#DivPassword") 
    .attr('title', 'Photo by Kelly Clark') 
    .dialog('open') 
; 
+0

Tôi đã cố gắng thêm thông báo ... như trong mã đã chỉnh sửa ở trên. Nhưng mặc dù cả hai phiên bản hiển thị tiêu đề phù hợp nhưng tiêu đề không được hiển thị. – learning

0

Thử đặt thuộc tính tiêu đề sau khi hộp thoại mở. Có lẽ dialog.open() của bạn sẽ đặt lại thuộc tính title.

Tôi nghĩ bạn có thể cung cấp chức năng gọi lại cho sự kiện mở.

Xem open

+0

Nếu nó đã được đặt lại, sau đó tôi không nghĩ rằng danh hiệu đầu tiên sẽ được hiển thị! Bạn nghĩ gì về điều này? Tiêu đề mới đang được gán sẽ không được hiển thị. – learning

21

Bạn có thể thay đổi tiêu đề của một hộp thoại trực tiếp với:

$('#DivPassword').dialog('option', 'title', 'Photo by Kelly Clark'); 

này sẽ làm việc trong trường hợp của bạn. Thực tế, mã của bạn để thay đổi thuộc tính tiêu đề là chính xác. Tôi đoán rằng hộp thoại tạo ra hộp thoại khi .dialog được gọi đầu tiên. Phương thức mở chỉ hiển thị hộp thoại sau đó, mà không cần tạo lại nó từ div.

+0

Tôi đã thay đổi mã như trong phần đã chỉnh sửa ở trên. Tuy nhiên, tôi không thể hiểu tại sao nó không hoạt động. – learning

+0

Bạn vẫn không sử dụng hộp thoại-phương pháp để đặt tiêu đề. Bạn có thể thêm dòng của tôi ngay trước tuyên bố cảnh báo của bạn và nó sẽ hoạt động. –

+0

hoạt động hoàn hảo - Tôi đã thử tất cả các cách khác từ các bài đăng và bài viết khác nhau. Đây rõ ràng là giải pháp thanh lịch nhất .. aka, hay nhất! Tôi đã học/làm việc với các hộp thoại jquery trong vài tháng nay, và chỉ thấy cách làm việc này lần đầu tiên ở đây. Bạn không chắc chắn tại sao tài liệu, tuts và bài đăng không nhấn mạnh loại giải pháp này vì nó rất hữu ích/mạnh mẽ trong nhiều tình huống mã khác nhau ..? .. Cảm ơn bạn đã chia sẻ một lớp lót tuyệt vời – gnB

0

Chỉ định tiêu đề của hộp thoại. Tiêu đề cũng có thể được chỉ định bởi thuộc tính tiêu đề trên hộp thoại phần tử.

Mã ví dụ

Khởi tạo một hộp thoại với các tùy chọn tiêu đề cụ thể.

$(".selector").dialog({ title: 'Dialog Title' }); 

Nhận hoặc đặt tùy chọn tiêu đề, sau init.

//getter 
var title = $(".selector").dialog("option", "title"); 
//setter 
$(".selector").dialog("option", "title", 'Dialog Title'); 

source.

để trả lời the dialog doesnt show any title của bạn.

0

tôi đã này:

$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false }); 
//more code 
$("#div1").dialog("option", "title", "joopla, here is a new title"); 

này làm việc cho tôi

1
$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false }); 
// more code 
$("#div1").dialog("option", "title", "joopla, here is a new title"); 

đã làm các trick cho tôi ..

7

Bạn có thể thay đổi bất kỳ attr từ bất kỳ phần tử DOM với jQuery dễ dàng như:

$("#divMessage").attr('title', 'Type here the new Title text'); 

Cheers!

Các vấn đề liên quan