2010-08-13 10 views
5

Mam formularz edycji, który wyświetlam jako nakładkę za pomocą narzędzi Jquery.Narzędzia jQuery: Jak zamknąć nakładkę?

Na mojej stronie widoku listy obiektów każdy obiekt ma <a href="#" class="edit_button">Edit</a>. Wszystkie one są przyłączone do tej samej formie nakładki z:

 $(".edit_button[rel]").overlay({ top: '5px', 
      fixed: false, 

      mask: { 
       color: '#ebecff', 
       loadSpeed: 200, 
       opacity: 0.9 
      } 
     }); 

Formularz edit nakładka zawiera przycisk Anuluj:

<a href="#" class="cancel">Cancel</a> 

jaki sposób można uczynić ten przycisk Anuluj Zamknij nakładkę? Wygląda na to, że jedynym sposobem uzyskania dostępu do obiektu API Overlay API jest użycie selektora, który je utworzył - w tym przypadku $('.edit').each(), ponieważ nie wiem, który z nich uruchomił nakładkę.

Co naprawdę chcę zrobić coś jak:

$('.cancel').click(function(e){ 
    var target = e.originalTarget || e.srcElement; 
    $(target).parent().parent().getOverlay().close(); 
}); 

ale to nie działa.

Czy jest jakiś sposób mogę zamknąć nakładkę, nie robiąc:

$(".edit_button[rel]").each(function() { 
    $(this).overlay().close(); 
}); 

?

Odpowiedz

2

Można łatwo dodać więcej zamykania elementów wewnątrz nakładki prostu przypisując nazwę klasy CSS „blisko” do nich. Elementy te można stylizować na i umieszczać w dowolny sposób wewnątrz nakładki w postaci .

Jeśli podasz wartość dla bliskiej zmiennej konfiguracji bliskie element nie jest generowany automatycznie i potrzeba zdefiniowania elementu zamykającego (y) siebie.

Jeśli więc wstawisz <a href="#" class="cancel close">Cancel</a>, to powinno działać.

+0

dzięki za odpowiedź. niestety to nie działa :-( – Roger

+0

Przepraszam, spróbuję jeszcze raz, zobacz moją edycję –

+0

Działa teraz.Dziękuję – Roger

1

Aby zamknąć modal z JavaScript (automatycznie bez klikając przycisk zamykania):

$('#ID OF YOUR MODAL a.close').trigger("click"); 

lub jeśli jesteś w iframe (jak ja), umieścić rodzica. przed $.

+0

bardzo ładne rozwiązanie – Azd325

1

Poszerzenie oferty Kras. Jeśli masz tylko jedna nakładka otwarte na raz (co logicznie zrobisz), a następnie można użyć tego bardziej ogólne podejście może:

$('a.close').trigger('click'); 

Mam nadzieję, że to pomoże!

Powiązane problemy