2012-01-06 43 views
18

Xin chào thành viên SO,Twitter Bootstrap Modal - IsShown

Có vấn đề này khi tôi tự động điền một hộp phương thức.

Đôi khi nó đã có nội dung, vì vậy tôi đã cố gắng thực hiện ẩn/hiển thị trên mỗi yêu cầu. Nhưng chương trình được kích hoạt trước khi chức năng ẩn được thực hiện, do đó, nó phá vỡ kịch bản.

Tôi không thể thực hiện một liên kết với "ẩn", bởi vì nếu đây là lần đầu tiên - nó sẽ không kích hoạt chức năng ẩn khỏi bootstrap.

Sử dụng phương thức ('true') tôi có thể thấy đối tượng có phần tử isShown, nhưng có ai biết cách tôi có thể truy cập nó không?

Các console.log thấy điều này:

$backdrop 
    [div.modal-backdrop] 

$element 
    [div#modal-from-dom.modal] 

isShown 
    true 

settings 
    Object { backdrop="static", keyboard=true, show=false} 

hide 
    function() 

show 
    function() 

toggle 
    function() 

__proto__ 
    Object { toggle=function(), show=function(), hide=function()} 

Trả lời

25

trả lời cho Twitter Bootstrap 3:

$("element").data()['bs.modal'].isShown 

hay

$("element").data('bs.modal').isShown 
10

Câu trả lời là:

$("element").data('modal').isShown 
+1

Nhưng bạn không thể kiểm tra theo cách này nếu bạn chưa bao giờ hiển thị phương thức trước đây. Điều này chỉ hoạt động nếu bạn đã từng mở một cửa sổ phương thức. Cách giới hạn. – Green

+1

if ($ ("element"). Data ('modal') && $ ("element"). Data ('modal') .Show) {works fine for me} – Mike

3

On 3.0.x bootstrap

$('#modal_Id').data().modal.isShown 

hoặc

$('#modal_Id').data('modal').isShown 

modal_id là id của bạn modal

1

Nếu bạn muốn một phiên bản Bootstrap 2 3 giải pháp một d thà không nhấn data (vì có vẻ như tên đã thay đổi một lần) ...

$(element).hasClass('in') (sẽ bị "mờ nhạt" hoặc "hiển thị"; .. Một cộng mà nó trả về một boolean)

hoặc

"false" === $(element).attr('aria-hidden') (vì vậy đó là aria-ẩn hoặc nhìn thấy cũng "true" cho ẩn trong trường hợp này)

Xem source from bootstrap 3.3.1 here:

this.backdrop(function() { 
... 
    that.$element 
    .addClass('in') 
    .attr('aria-hidden', false) 
... 

Một lần nữa, mã đó là từ 3.3.1. Có thể xác nhận điều này cũng hoạt động trong 2.1.0. Duck sniffing [sic] có lẽ tốt hơn trong trường hợp này.

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