Закрыть толстое окно jQuery при нажатии кнопки

Вот мой jQuery:

<script src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/thickbox.js"></script>
<script type="text/javascript"

$('#button').click(function(){
     $('#TB_window').fadeOut();
});

</script>

HTML:

  <input type="submit" id="button" value="clse" >

Я пробовал эту функцию, но она не работает.


person sudeep cv    schedule 06.07.2012    source источник
comment
У толстого ящика есть встроенный метод. tb_remove просто вызывайте этот метод tb_remove(); там, где вам нужно. Это закроет толстый ящик правильно. читайте подробнее мой ответ, написанный ниже. stackoverflow.com/a/21216272/1124612   -  person Makarand Mane    schedule 15.04.2014


Ответы (5)


У толстого ящика есть встроенный метод. tb_remove просто вызывайте этот метод tb_remove(); там, где вам нужно. Это закроет толстый ящик правильно.

Если вы используете $('#TB_window').fadeOut(); , TB_overlay DIV останется открытым. Если вы снова сделаете что-то глупое, например $('#TB_overlay').fadeOut();, это создаст проблемы для вашего толстого ящика. И толстая коробка перестанет функционировать.

person Makarand Mane    schedule 19.01.2014
comment
Одна строка для этого: $('#TB_window, #TB_overlay').fadeOut(); - person Kash; 22.09.2018
comment
Обратите внимание, что если modal=true, tb_remove() следует вызывать из содержимого толстого ящика. Например, <div id="myThickbox"><button onclick="tb_remove();">X</button></div> . - person Typel; 18.07.2019

Вы должны предотвратить выполнение события ввода по умолчанию. Измените свой код на это:

$('#button').click(function(){
     $('#TB_window').fadeOut();
     e.preventDefault();
});
person Th 00 mÄ s    schedule 06.07.2012
comment
Добавьте alert(), чтобы вы могли проверить, выполняется ли функция вообще. Также распечатайте результат $('#TB_window'), чтобы увидеть, возвращает ли этот выбор допустимый результат. - person Th 00 mÄ s; 06.07.2012
comment
Вероятно, лучше, если вы используете e.preventDefault(). Не злоупотребляйте возвратом false. - person Jezen Thomas; 06.07.2012

Это решение сработало для меня, попробуйте:

$(document).ready(function{
  $('#button').click(function(){
   self.parent.tb_remove();
  });
});
person Hemantwagh07    schedule 14.06.2013

Если вы включаете Thickbox.js, что очевидно, попробуйте.....

$('#closeTBWindow').click(tb_remove);
person pinkal vansia    schedule 21.08.2013
comment
Мне нравится этот sloution, потому что он позволяет повторно открыть, если щелкнуть. обновленный код должен быть: $('#TB_closeWindowButton').click(); - person Kash; 22.09.2018

Я предлагаю использовать «кнопку» вместо «отправить», например:

<input type="button" id="button" value="close" />

Тогда код jQuery должен быть:

$(document).ready(function{
  $('#button').click(function(){
   $('#TB_window').fadeOut();
  });
});

Таким образом, вам не нужно использовать e.preventDefault().
Часть $(document).ready() действительно важна. Без этого jQuery попытается прикрепить код к кнопке еще до того, как она будет создана, поэтому это не сработает.

примечание: мне нравится использовать элементы DIV в качестве кнопок.

person ZeeCoder    schedule 06.07.2012