Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Показывать кнопку при условии (https://javascript.ru/forum/dom-window/53592-pokazyvat-knopku-pri-uslovii.html)

РустамRu 10.02.2015 10:18

Показывать кнопку при условии
 
Добрый день, возник следующий вопрос. Хочу сделать показ кнопки по условию, например: на странице есть блок <div id="status">Свободно, забронировано</div> и есть кнопка <div id="bottom">Подробнее</div>, так вот думаю сделать чтобы при значение в первом блоке "свободно", кнопка появлялась, и наоборот при значении "забронировано" кнопка исчезала. Кто может показать как это реализовать, или может скинуть пример, буду вам благодарен. Спасибо!

ksa 10.02.2015 11:28

Цитата:

Сообщение от РустамRu
на странице есть блок <div id="status">Свободно, забронировано</div> и есть кнопка <div id="bottom">Подробнее</div>

Как именно они расположены на той странице?
Т.е. знание о их каком-то "существовании" на странице явно мало...

РустамRu 10.02.2015 11:33

<div class="opisanie">
<small>Статус</small><div id="status"><big >Свободна</big></div>
</div>

<div id="botton">
	<a class="show_popup" rel="forma" href="#"></a>
</div>


попробовал сделать так:

<script>
      $('status').each(function(){
	var x = $(this).text();
    if (x = Забронирована) $('botton').css({display: 'none'});
	});
  </script>


но не работает

рони 10.02.2015 11:55

Цитата:

Сообщение от РустамRu
if (x = Забронирована)

чего то в супе не хватает ?!

РустамRu 10.02.2015 12:01

это понятно

рони 10.02.2015 12:20

Цитата:

Сообщение от РустамRu
if (x == "Забронирована") $('#botton').css({display: 'none'});

Цитата:

Сообщение от РустамRu
$('#status')

:cray:

РустамRu 10.02.2015 12:25

все равно не работает(

рони 10.02.2015 12:35

Цитата:

Сообщение от РустамRu
все равно не работает(

ой :-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       var x = $("#status").text();
       if (x == "Забронирована") $('#botton').css({display: 'none'});
});


  </script>
</head>

<body>  <div class="opisanie">
<small>Статус</small><div id="status"><big >Забронирована</big></div>
</div>

<div id="botton">
	<a class="show_popup" rel="forma" href="#">ОЙ</a>
</div>


</body>

</html>

РустамRu 10.02.2015 12:49

вот теперь все работает, спасибо!!!

РустамRu 10.02.2015 12:56

а вот смотрите, если допустим при данном условии изменить цвет шрифта, будет так:
if (x == "Забронирована") $('#botton-page').css({color: '#e10f10'});

или можно так
if (x == "Забронирована") $('#botton-page').css({display: 'none',color: '#e10f10'});

?

рони 10.02.2015 13:29

Цитата:

Сообщение от РустамRu
или можно так

можно но где логика ? покрасить невидимое???

РустамRu 10.02.2015 13:29

разобрался, еще раз спасибо)))

РустамRu 11.02.2015 08:04

у ячейки таблицы класс column-7, делаю чтобы при условии (забронирована) ячейка окрашивалась другим цветом, сделал вот так:
<script>
     $(function(){
       var x = $("td.column-7").text();
       if (x == "Забронирована") $('td.column-7').css({background: '#f3f3f3' });
});
</script>

только вот что-то не работает данная функция

рони 11.02.2015 10:20

РустамRu,
циклом проверяйте а не все хором

РустамRu 11.02.2015 10:24

пока не так силен в js, что значит циклом и как это?

рони 11.02.2015 10:30

РустамRu,
смотрите свой пост №3 и попробуйте его исправить с учётом полученных знаний.
или сделайте макет хотябы

РустамRu 11.02.2015 10:36

спасибо)

РустамRu 11.02.2015 10:46

сделал вот так:
<script>
      $('td.column-7').each(function(){
	var x = $(this).text();
    if (x = "Забронирована") $('tr').css({background: '#f3f3f3'});
	});
  </script>

работает, только вот закрашиваются все строки, а как можно сделать чтобы закрашивалось именно та строка где содержится слово (забронирована) ?

ksa 11.02.2015 11:01

Цитата:

Сообщение от РустамRu
x = "Забронирована"

Это не условие... :no:

И опять букварь...
http://javascript.ru/comparison-operators

РустамRu 11.02.2015 11:15

второй знак = забыл) но не в этом дело, а в том что он закрашивает все строки таблицы, а нужно только ту строку в которой находится слово (забронирована), или же хотя бы ячейку с данным словом

рони 11.02.2015 11:18

РустамRu,
таблицу нарисуйте, минимальный html

рони 11.02.2015 11:23

Цитата:

Сообщение от РустамRu
if (x = "Забронирована") $('tr').

if (x == "Забронирована") $(this).css

ksa 11.02.2015 11:23

РустамRu, ты читал это?
http://javascript.ru/forum/site/4917...u-zapuska.html

РустамRu 11.02.2015 11:38

<script>
      $('td.column-7').each(function(){
	var x = $(this).text();
    if (x == "Забронирована") $(this).css({background: '#f3f3f3'});
	});
</script>

<table>
<tbody class="row-hover">
<tr class="row-2">
	<td class="column-1">...</td><td class="column-2">...</td><td class="column-3">...</td><td class="column-4">...</td><td class="column-5">...</td><td class="column-6">...</td><td class="column-7">Свободна</td><td class="column-8"><a href="">...</a></td>
</tr>
<tr class="row-3">
	<td class="column-1">...</td><td class="column-2">...</td><td class="column-3">...</td><td class="column-4">...</td><td class="column-5">...</td><td class="column-6">...</td><td class="column-7">Продана</td><td class="column-8"><a href="">...</a></td>
</tr>
<tr class="row-4">
	<td class="column-1">...</td><td class="column-2">...</td><td class="column-3">...</td><td class="column-4">...</td><td class="column-5">...</td><td class="column-6">...</td><td class="column-7">Забронирована</td><td class="column-8"><a href="">...</a></td>
</tr>
</tbody>
</table>

теперь работает, закрашивается ячейка) а вот как строку закрасить пока додумать не могу)

рони 11.02.2015 11:47

РустамRu,
$(this).parent().css

РустамRu 11.02.2015 12:09

большое спасибо!!! все получилось как надо)

РустамRu 11.02.2015 12:52

а как можно подсчитать количество ячеек со словом (Забронирована), что-то ничего подобного пока не нашел, может подскажите в какую сторону двигаться?

рони 11.02.2015 12:56

Цитата:

Сообщение от РустамRu
в какую сторону двигаться?

в сторону подумать ... if (x == "Забронирована") оно++

РустамRu 11.02.2015 13:03

спасибо) буду думать)

ksa 11.02.2015 13:16

Цитата:

Сообщение от РустамRu
как можно подсчитать количество ячеек со словом (Забронирована), что-то ничего подобного пока не нашел

Да брось! :D

<!DOCTYPE html>
<html ng-app>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	alert('Таких ячеек - '+$('td:contains("Забронирована")').length+' шт.');
});
</script>
</head>
<body> 
<table>
<tbody class="row-hover">
<tr class="row-2">
	<td class="column-1">...</td><td class="column-2">...</td><td class="column-3">...</td><td class="column-4">...</td><td class="column-5">...</td><td class="column-6">...</td><td class="column-7">Свободна</td><td class="column-8"><a href="">...</a></td>
</tr>
<tr class="row-3">
	<td class="column-1">...</td><td class="column-2">...</td><td class="column-3">...</td><td class="column-4">...</td><td class="column-5">...</td><td class="column-6">...</td><td class="column-7">Продана</td><td class="column-8"><a href="">...</a></td>
</tr>
<tr class="row-4">
	<td class="column-1">...</td><td class="column-2">...</td><td class="column-3">...</td><td class="column-4">...</td><td class="column-5">...</td><td class="column-6">...</td><td class="column-7">Забронирована</td><td class="column-8"><a href="">...</a></td>
</tr>
</tbody>
</table>

</body>
</html>

P.S.
Вот это и есть тестовый пример, да еще с возможностью запуска... ;)

РустамRu 11.02.2015 13:34

все так просто) именно на странице с таблицей не работает, а на всех остальных все показывает, буду разбираться. Спасибо)

РустамRu 12.02.2015 11:04

<area id="squidhead" title="Статус: Свободна " alt="Link"  data-maphilight="{&quot;stroke&quot;:false,&quot;fillColor&quot;:&quot;fdff5a&quot;,&quot;fillOpacity&quot;:0.6}" />


при наведении сделал всплывающий title с помощью tooltip, вот думаю сделать изменение цвета шрифта при условии, что title содержит слово (свободна)

<script>
     $(function(){
       var x = $("area title").text();
           if (x == "Свободна") $('area title').css({color: '#fff');
});
</script>


но что-то ничего не получается, ни какой реакции в изменении цвета, что делаю не так?

ksa 12.02.2015 11:06

Цитата:

Сообщение от РустамRu
что делаю не так?

Ты так и не делаешь тестовые примеры... А пора бы. ;)

РустамRu 12.02.2015 11:09

а как я его сделаю если он не работает

рони 12.02.2015 11:14

Цитата:

Сообщение от РустамRu
а как я его сделаю если он не работает

для того чтобы не гадать про остальные части кода
Цитата:

Сообщение от РустамRu
$("area title")

это пока фигня а не селектор ищите как достать атрибут

ksa 12.02.2015 11:16

Цитата:

Сообщение от РустамRu
а как я его сделаю если он не работает

ак телается тестовый пример тебе показывали и не раз... От тебя и не требуется "рабочий"... Просто на примере и будет понятно, что именно ты делаешь и что не так.
Или можно предложить другие варианты решения...

РустамRu 12.02.2015 11:23

.tooltip отвечает за оформление атрибута title, но и его использование не помогает

ksa 12.02.2015 11:27

РустамRu, т.е. тестовый пример от тебя мы так и не увидим? :(

РустамRu 12.02.2015 11:32

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
.tooltip{
position:absolute;
z-index:60;
left:-9999px;
background:#8db24b;
padding:5px 5px 5px 20px;
max-width:108px;
height:81px;
font-size:14px;
}

  </style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo bloginfo('template_directory'); ?>/js/jquery.maphilight.js"></script>
<script type="text/javascript" src="<?php echo bloginfo('template_directory'); ?>/js/scriptetag.js"></script>
<script type="text/javascript">
	function simple_tooltip(target_items, name){
$(target_items).each(function(i){
$("body").append("<div class='"+name+"' id='"+name+i+"'><p>"+$(this).attr('title')+"</p></div>");
var my_tooltip = $("#"+name+i);

$(this).removeAttr("title").mouseover(function(){
my_tooltip.css({opacity:1, display:"none"}).fadeIn(10);
}).mousemove(function(kmouse){
my_tooltip.css({left:kmouse.pageX+15, top:kmouse.pageY+0});
}).mouseout(function(){
my_tooltip.fadeOut(10);
});
});
}
$(document).ready(function(){
simple_tooltip("area","tooltip");
});
</script>

<script>
     $(function(){
       var x = $("area title").text();
           if (x == "Свободна") $('area title').css({color: '#fff');
});
</script>


</head>

<body>
<img src=""  width="100" height="30"  class="map"  usemap="#simple" />

<map name="simple">
<area id="squidhead" title="Статус: Свободна " alt="Link"  data-maphilight="{&quot;stroke&quot;:false,&quot;fillColor&quot;:&quot;fdff5a&quot;,&quot;fillOpacity&quot;:0.6}" />
</map>

</body>

</html>


вот)

рони 12.02.2015 12:14

РустамRu,
что-то у вас с логикой сначала атрибут удалить потом его искать ...
где } строка 48
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
.tooltip{
position:absolute;
z-index:60;
left:-9999px;
background:#8db24b;
padding:5px 5px 5px 20px;
max-width:108px;
height:81px;
font-size:14px;
}

  </style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo bloginfo('template_directory'); ?>/js/jquery.maphilight.js"></script>
<script type="text/javascript" src="<?php echo bloginfo('template_directory'); ?>/js/scriptetag.js"></script>
<script type="text/javascript">
	function simple_tooltip(target_items, name){
$(target_items).each(function(i){
$("body").append("<div class='"+name+"' id='"+name+i+"'><p>"+$(this).attr('title')+"</p></div>");
var my_tooltip = $("#"+name+i);

$(this)
//.removeAttr("title")
.mouseover(function(){
my_tooltip.css({opacity:1, display:"none"}).fadeIn(10);
}).mousemove(function(kmouse){
my_tooltip.css({left:kmouse.pageX+15, top:kmouse.pageY+0});
}).mouseout(function(){
my_tooltip.fadeOut(10);
});
});
}
$(document).ready(function(){
simple_tooltip("area","tooltip");
});
</script>

<script>
     $(function(){
       var x = $("area").attr("title");
           if (x == "Статус: Свободна ") $('area').css({color : '#fff'});
           alert($('map').html())
});
</script>


</head>

<body>
<img src=""  width="100" height="30"  class="map"  usemap="#simple" />

<map name="simple">
<area id="squidhead" title="Статус: Свободна " alt="Link"  data-maphilight="{&quot;stroke&quot;:false,&quot;fillColor&quot;:&quot;fdff5a&quot;,&quot;fillOpacity&quot;:0.6}" />
</map>

</body>

</html>


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