jQuery переключает div и скрывает div

Мне нужна помощь, у меня есть страница форума, и я не могу заставить тумблер работать

Вот код:

    <script type="text/javascript">
 $(document).ready(function() {
    $(".button").click(function(event) {
        $("#div").hide();
        var tmp = ($("#div" + $(this).attr("target")).is(":visible") ? false : true)
        if (tmp) $("#div" + $(this).attr("target")).toggle();
    });
});
</script>
<h2>Forum</h2>
<table cellspacing="0" cellpadding="0" width="100%" class="table">
<tr style="background: #f2f2f2;"><td><strong>Name</strong></td><td></td></tr>
<tr style="display:none;" id="divDynamicID"><td>&nbsp;&nbsp;&nbsp;&nbsp;NAME</td><td align="right" width="40"><img src="../img/pencil.png">&nbsp;&nbsp;<img src="../img/delete.png"></td></tr>';
<tr class="Test"><td>&nbsp;&nbsp;&nbsp;&nbsp;Name</td><td align="right" width="40"><img src="../img/pencil.png" class="button" target="dynamicID">&nbsp;&nbsp;<img src="../img/delete.png"></td></tr>';

When you click the .button i want it to hide all open divs and just open that one you click at, but at this time i only get the show part to work not the not show part.


person Tommy    schedule 09.07.2013    source источник
comment
В вашем коде нет никаких divs, кроме <div class="alert alert-box alert-error">. И я почти уверен, что вы имели в виду не это.   -  person SASM    schedule 09.07.2013


Ответы (2)


В вашем коде jQuery я нашел код с #div, но не смог найти div с id div в HTML-коде. # будет использоваться только с идентификатором элемента управления HTML

Принимая во внимание, что div — это селектор, используемый для элементов управления HTML.

person Chirag Vidani    schedule 09.07.2013

Я не очень уверен в вашем вопросе. Если я правильно понял, то скажу две вещи. Во-первых, у вас может быть локальная переменная для идентификатора tr, который вы хотите отобразить. Я предполагаю, что идентификатор - это значение целевого атрибута для класса кнопок с префиксом «div». А во-вторых, вы можете иметь класс для каждой из строк, чтобы вы могли скрыть их все, когда это необходимо.

echo '<tr style="display:none;" id="div'.$obj->boardID.'"><td>&nbsp;&nbsp;&nbsp;&nbsp;'.$obj->name.'</td><td align="right" width="40"><img src="../img/pencil.png">&nbsp;&nbsp;<img src="../img/delete.png"></td></tr>';
echo '<tr class="Test"><td>&nbsp;&nbsp;&nbsp;&nbsp;'.$obj->name.'</td><td align="right" width="40"><img src="../img/pencil.png" class="button" target="'.$obj->boardID.'">&nbsp;&nbsp;<img src="../img/delete.png"></td></tr>';

В обители я поставил класс trClass. Вы можете изменить его на то, что вы считаете контекстуальным для вашего кода.

$(".button").click(function(event) {
    $('.trClass').hide();
    var trId="div"+$(this).attr("target");
    var tmp = $("#" + trId).is(":visible");
    if (tmp) $("#" + trId).show();
});
person Rupam Datta    schedule 09.07.2013
comment
Мой скрипт jQuery работает прямо сейчас, чтобы показать tr, но не скрыть их, и я должен иметь возможность показывать только одну строку за раз, чтобы другая скрывалась (если они открыты). Если вы все еще не понимаете, я попытаюсь объяснить немного лучше :) - person Tommy; 09.07.2013