2016-05-10 2 views
1

Вот мой код php/javascript. Я попытался написать скрипт внутри цикла, но он не работает. Это создает две кнопки: одну для местной команды, при обработке местной команды, а вторую для команды по дороге, при обработке команды по дороге. Эти кнопки отображают информацию, содержащуюся в div другого класса. По какой-то причине он работает только для местной команды, которая представляет собой первую итерацию цикла.Переключить скрипт внутри цикла работает только для первой итерации

Я много читал о людях, использующих id вместо классов, но это не мое дело. Я совершенно потерян.

Большое спасибо за помощь.

<script> 
    $(".showavgloc").click(function(){ 
     event.preventDefault(); 
     $(".averageloc").slideToggle("slow"); 
    }); 
    $(".showavgvis").click(function(){ 
     event.preventDefault(); 
     $(".averagevis").slideToggle("slow"); 
    }); 
</script> 
<?php 
foreach ($teams as $team) { 
    if ($page=="game") { 
     if ($team==$locteam) { 
      echo "<button class='showavgloc'>Show average player</button>"; 
     } 
     if ($team==$visteam) { 
      echo "<button class='showavgvis'>Show average player</button>"; 
     } 
    } 
    if ($team==$locteam) { 
     echo "<div class='averageloc' style='display:none'>This div has to be shown/hidden for local team</div>"; 
    } 
    if ($team==$visteam) { 
     echo "<div class='averagevis' style='display:none'>This div has to be shown/hidden for road team</div>"; 
    } 
} 
?> 
+0

Покажите нам пример содержания '$ teams'. – lolbas

+0

$ commands - это массив, содержащий две строковые переменные: $ teams = ($ locteam, $ visteam) – Javi

+0

Где определены '$ locteam' и' $ visteam'? –

ответ

0

Попробуйте сделать это:

после этого PHP кода, и перед близко он (до этого ">?"), Сделать "эхо", который содержит:

<script> 
    $(".showavgloc").click(function(){ 
     event.preventDefault(); 
     $(".averageloc").slideToggle("slow"); 
    }); 
    $(".showavgvis").click(function(){ 
     event.preventDefault(); 
     $(".averagevis").slideToggle("slow"); 
    }); 
</script> 

и попробуйте использовать его по своему усмотрению. Это может помочь в некоторых случаях, потому что, когда вы используете библиотеку jQuery и затем генерируете код html throw, DOM поддерживает «начальную» версию, поэтому jQuery не может работать должным образом, потому что никогда не находите элементы управления. Правильный порядок: Управление печатью, а затем привязка событий jQuery.

Успехов

+0

Боюсь, что это еще не за работой. Вторая кнопка ничего не делает ... Спасибо в любом случае! – Javi

+0

ОК, это «работа»! Теперь вторая кнопка работает отлично, а первая кнопка делает три вещи при нажатии: show/hide/show. Или скрыть/показать/скрыть. Удивительно! – Javi

+0

Можете ли вы использовать консоль браузера, чтобы проверить документ и рассказать мне, что вы видите? части, сгенерированные с помощью php? –

0

Ваш код, кажется, работает хорошо, когда все включено:

$(".showavgloc").click(function(){ 
 
    event.preventDefault(); 
 
    $(".averageloc").slideToggle("slow"); 
 
}); 
 
$(".showavgvis").click(function(){ 
 
    event.preventDefault(); 
 
    $(".averagevis").slideToggle("slow"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button class='showavgloc'>Show average player</button> 
 
<button class='showavgvis'>Show average player</button> 
 
<div class='averageloc' style='display:none'>This div has to be shown/hidden for local team</div> 
 
<div class='averagevis' style='display:none'>This div has to be shown/hidden for road team</div>

Я думаю, что еще что-то неладно. Проверьте свою страницу, чтобы убедиться, что все элементы правильно напечатаны вашим PHP. Если все кажется прекрасным, вы можете попробовать использовать функцию jQuery «on», которая должна следить за новыми элементами, которые соответствуют селектору. https://api.jquery.com/on/

+0

Спасибо. По-видимому, он отлично работает при использовании вне цикла. Проблема в том, что оба Кнопки генерируются через цикл. – Javi

+0

Если исходные кнопки и div работают так, как ожидалось, единственное объяснение состоит в том, что цикл не генерирует их правильно. Возможно, он не генерирует div, когда это должно быть. Можете ли вы опубликовать остальные ваш PHP-код, содержащий часть, в которой установлены остальные переменные? Вы проверили страницу с помощью инструмента проверки Chrome посмотрите, действительно ли правильные divs? – ctrimm

+0

Это, наконец, работает! Речь шла о размещении части . Я попытался поместить его к концу кода (значительно ниже соответствующего цикла), и он сработал ... Спасибо всем. – Javi

Смежные вопросы