Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Показывать блок везде, кроме определенной страницы (https://javascript.ru/forum/jquery/54478-pokazyvat-blok-vezde-krome-opredelennojj-stranicy.html)

sashgera 18.03.2015 22:43

Показывать блок везде, кроме определенной страницы
 
Здравствуйте
Есть всплывающий див
<div id="block"></div>

чтобы не показывать этот див на конкретной странице, например test.html, можно сделать так:
<script type="text/javascript">
 $(document).ready(function(){  
   $("#block").hide();
});
</script>

а как сделать условие в коде самого дива, чтобы всплывающий блок показывался везде, кроме страницы test.html

пожалуйста, помогите

laimas 18.03.2015 23:22

Он что автоматом показывается при загрузке страниц?

sashgera 18.03.2015 23:31

Цитата:

Сообщение от laimas (Сообщение 362002)
Он что автоматом показывается при загрузке страниц?

отсылает куки и в следующий раз через 12 часов

laimas 19.03.2015 00:24

Ну тогда, что-то такое:

if(!/test/.test(location)) {
   //действия определяющие показ 
}


Конечно в том случае, если имя скрипта test уникально, например нет каталога с таким же именем.

sashgera 19.03.2015 01:28

laimas, сделал так, но див показывается на всех страницах, включая страницу test.html
<script type="text/javascript">
if(!/test/.test(location)) {
 $(document).ready(function(){  
   $("#block").hide();
});
 }
</script>
<div id="block" style="width:300px; height:200px; background-color:#999;">
</div>

я наверное не правильно все объяснил, пишу подробнее
сайт на joomla, в модуле див:
<div id="block" style="width:300px; height:200px; background-color:#999;">
</div>

этот блок показывается на всех страницах
нужно чтобы на конкретной странице - www.mysite.ru/test.html этот блок не показывался

в joomla можно выбрать, на каких страницах показывать модуль, но мне это не подходит, нужно условие что то типа:
if (test.html) //не знаю как сделать условие
{
	$("#block").hide();
}
else
{
	$("#block").show();
};

laimas 19.03.2015 02:10

Лучше так, и не $(document).ready в условии, а условие $(document).ready:

<script> 
$(function() {
    if(!location.href.match(/name_file/)) {
        //........
    }
});
</script>


А джумла или нет, рояли не играет.

sashgera 19.03.2015 02:46

laimas, что-то я делаю не так:
<script type="text/javascript">
$(document).ready(function(){  
$(function() {
    if(!location.href.match(/test.html/)) {
        $("#block").hide();
    }
});						   
});
</script>

<div id="block" style="width:300px; height:200px; background-color:#999;">
</div>

в итоге: на странице test.html див показывается, а на других страницах - нет (нужно наоборот)
меняю
$("#block").hide();

на
$("#block").show();

див показывается на всех страницах

laimas 19.03.2015 04:53

Уберите расширение файла из выражения (.html), зачем его проверять, оно у вас что меняются?

if(!location.href.match(/test/)) $("#block").show();

или

if(location.href.match(/test/)) $("#block").hide();

sashgera 19.03.2015 12:21

laimas, спасибо, если так, то блок на странице test.html не показывается
if(location.href.match(/test/)) $("#block").hide();

но также блок не показывается на страницах tes.html или test2.html
подскажите, как сделать точное совпадение?

laimas 19.03.2015 12:31

Вы читали внимательно?

Конечно в том случае, если имя скрипта test уникально, например нет каталога с таким же именем.

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

Замените выражение /test/ на /test\d*/

Вы что "метите" таким образом страницы, которые отладить надо?\

Фу ты блин, надо же наоборот не реагировать.


Часовой пояс GMT +3, время: 08:30.