Кнопка "закрыть" в Java

12
падаван
На сайте с 05.07.2011
Offline
42
4497

Кнопка "закрыть страницу" в Javascript выглядит вот так:

<button onClick='self.close()'>Закрыть окно</button>

при ее нажатии закрывается вся страница целиком. А как создать кнопку, которая будет закрывать не всю страницу, а только всплывающее окно, на котором она находиться?

TF-Studio
На сайте с 17.08.2010
Offline
334
#1

А всплывающее окно - на чем реализовано?

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
Rulin
На сайте с 16.01.2008
Offline
133
#2
падаван:
Кнопка "закрыть страницу" в Javascript выглядит вот так:
<button onClick='self.close()'>Закрыть окно</button>

при ее нажатии закрывается вся страница целиком. А как создать кнопку, которая будет закрывать не всю страницу, а только всплывающее окно, на котором она находиться?

Код который вы продемонстрировали, он и делает именно то что вы написали, т.е. закрывает текущее окно (всплывающее оно или основное не важно, имеется ввиду окна типа window.open). Другое дело что под всплывающем окном, вы скорей всего имеете ввиду другое, окно реализованное версткой на странице, div поверх всего остального, делается это например с помощью highslide (пример http://highslide.com/examples/headline.html), либо самописным скриптом/версткой, и закрывается оно (точнее не закрывается, а просто прячется элемент), по разному смотря на чем и как вы это реализовывали

Например для highslide это будет так:

return hs.close(this)

Самостоятельно на jQuery можно сделать например так

$('#windowId').hide();

Все зависит от того на чем реализовано всплывающее окно

p.s.

Не когда не пишите так

Кнопка "закрыть" в Java

Java и Javascript это совершенно разные не пересекающиеся вещи. Хотите написать Javascript сокращенно, пишите JS

Bitcoin Debit Card
падаван
На сайте с 05.07.2011
Offline
42
#3

Окна реализованы при помощи вот такого jQuery плагина. Окно появляется при наведении на текст, и исчезает автоматически, если курсор увести. Но в моем случае окна большие, заслоняют бОльшую часть экрана, и для удобства закрытия хочется встроить соответствующую кнопку. Пока я ни с jQuery ни с JS*) не знаком, поэтому, первым в голову пришло возможное решение с помощью скрипта.

Rulin, вы, похоже, совершенно правы. Но как правильно вставить код для jQuery, что вы привели? Сейчас код выглядит вот так (правда в фидле окно не закрывается, но на реальной странице работает). Как верно прописать:

$('#windowId').hide();
?
Rulin:
Java и Javascript это совершенно разные не пересекающиеся вещи. Хотите написать Javascript сокращенно, пишите JS

Спасибо, принял к сведению.

Rulin
На сайте с 16.01.2008
Offline
133
#4
падаван:
Но как правильно вставить код для jQuery, что вы привели?

Например так

<button onClick='$("#simple-content-1").hide();'>Закрыть окно</button>
падаван
На сайте с 05.07.2011
Offline
42
#5

Rulin, большое спасибо, работает!

А, еще - нет ли общего варианта, без указания id окна? Просто если их много и id разные, каждую кнопочку придется прописывать отдельно..

Rulin
На сайте с 16.01.2008
Offline
133
#6

HTML:

<button class="close">Закрыть окно</button>

Javascript: Добавляем внутрь $(document).ready(function(){

 
$(".simple-tooltip-content button.close").click(
function() {
$(this).closest(".simple-tooltip-content").hide();
}
);

Либо еще проще можно, но тогда может чтонибут лишнее сработать, все зависит от того что там у вас в всплывающих окнах

HTML:

<button>Закрыть окно</button>

Javascript: Добавляем внутрь $(document).ready(function(){

 
$("div button").click(
function() {
$(this).closest("div").hide();
}
);
падаван
На сайте с 05.07.2011
Offline
42
#7

Rulin, спасибо огромное за подробные коды! Но с последним я не могу разобраться:(

Вставляю в окошко

<button>Закрыть окно</button>

вставляю в хедер

<script> 
$(document).ready(function(){
$("div button").click(
function() {
$(this).closest("div").hide();
}
);
});
</script>

но кнопка не выполняет обязательства...

Rulin
На сайте с 16.01.2008
Offline
133
#8

Странно, проверял на вашем же примере ( http://jsfiddle.net/jnafx/54/ ), там все работает, проверяйте все остальное может у вас чтото по другому, или выложите сюда реальный пример

падаван
На сайте с 05.07.2011
Offline
42
#9

Мда, пока составлял пример оригинального кода в Фидле, понял, что не правильно вставил JS код в html - как то затерялась вторая }); :( Но это исправил, нажал кнопочку, окно закрылось, обрадовался! Но, тут же увидел, что при следующем наведении на картинку, часть с кнопкой, в браузере Хром, больше не появляется, а в Опере вообще только она обрубается, а картинка остается😕 Вот. (в оригинале используются картинки, тут, заменил локальные ссылки на Вики). Хотел воспользоваться вашим первым вариантом, где побочных эффектов не должно быть, но тоже не получается, не могу сообразить, какие классы прописать в JS коде. Совсем уже запутался...

Rulin
На сайте с 16.01.2008
Offline
133
#10
падаван:
Хотел воспользоваться вашим первым вариантом, где побочных эффектов не должно быть, но тоже не получается, не могу сообразить, какие классы прописать в JS коде. Совсем уже запутался...

Уж не знаю куда тут подробнее расписывать...

Попробую так:

ОЭ - Общий элемент, обертка, всплывающего окна (все всплывающие окна в него обернуты). Пример: div

ОК - Общий класс на обертке (div) всплывающего окна. Пример: .simple-tooltip-content

ЭК - Элемент кнопки закрыть. Пример: button

КК - Класс кнопки закрыть. Пример: .close

$("ОЭ.ОК ЭК.КК").click(

function() {
$(this).closest("ОЭ.ОК").hide();
}
);
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий