Я написал код в html -3 Div, который появляется после переключателей. Я хочу, чтобы щелчок на каждой кнопке отображал код, который находится в этой кнопке div, и будет скрывать оба других div.
Здесь код:
<html>
<body>
<div>
<form id="A" method="get" action="form.php"> <fieldset>
<legend> A </legend>
<div id="Headline">Headline: </div>
<div><input type="radio" name="B" value="B" onclick="functionb('b')"> <img class="photos" src="b.gif" alt="b"><br><div id="b>Show B</div>
<input type="radio" name="C" value="C" onclick="functionc('c')"><img class="photos" src="c.gif" alt="c"><br><div id="c">Show C</div>
<input type="radio" name="d" value="d" onclick="functiond('d')"><img class="photos" src="d.gif" alt="d"></div><br><div id="d">Show D</div>
</fieldset>
</form>
</div>
</body>
</html>
Я написал следующий код в JS файле (мне нужно поместить все скрипты в другой файл, который является html-one) только для первой кнопки:
$(document).ready(function(){
$("#b").click(function(){
$("#b").show();
$("#c").hide();
$("#d").hide();
});
});
и он не делает действия, необходимые при нажатии первой кнопки... Будь рад получить любую помощь - спасибо!
Похоже, есть несколько вещей, которые вам нужно решить. , ,
Во-первых, вы говорите, что вы нажимаете на переключатель и что он должен показывать связанный div и скрывать другие. Затем вы показываете этот раздел кода (добавленные мной комментарии):
$(document).ready(function() {
$("#v").click(function() { // This is the button click
$("#v").show(); // This shows the related div
$("#a").hide(); // This hides "other div" number 1
$("#i").hide(); // This hides "other div" number 2
});
});
Проблема в том, что вы ссылаетесь на переключатель с атрибутом id
целевого элемента <div>
($("v")
). Вам нужно ссылаться на радиокнопку иначе, например $("input[name='v']")
(так как имена должны быть уникальными в форме). Это выбирает вход с атрибутом name
, равным "v".
В конце концов, однако, вы должны, вероятно, сделать функцию общей, так что вам не нужно ссылаться на каждый переключатель. Например, вы можете сделать это, захватив все радио кнопки в форме. , , как это:
$("#A").find("input[type='radio']")
Это приведет к тому, что все входы радиокнопки будут записаны в форме "А". Затем вы можете прикрепить функцию щелчка к каждому из них (см. Ниже).
Во-вторых, я бы рекомендовал, чтобы все div были общим классом. Таким образом, вы можете привязать .hide()
к общему классу, а не к отдельным id
. Затем вы можете вернуться и показать конкретный <div>
после того как все они были спрятаны первыми.
Используя два вышеприведенных предложения (и удалив часть вашего другого кода, просто чтобы упростить мой ответ... вы можете добавить его обратно в свой последний код :)), вот пример того, что может сработать для вас:
HTML
<form id="a" method="get" action="form.php">
<input type="radio" name="b" value="b">
<img class="photos" src="b.gif" alt="b"><br>
<div id="b" class="subForm">Show B</div>
<input type="radio" name="c" value="c">
<img class="photos" src="c.gif" alt="c"><br>
<div id="c" class="subForm">Show C</div>
<input type="radio" name="d" value="d">
<img class="photos" src="d.gif" alt="d"></div><br>
<div id="d" class="subForm">Show D</div>
</form>
JS
$(document).ready(function(){
$("#a").find("input[type='radio']").click(function() {
$(".subForm").hide();
$("#" + $(this).attr("name")).show();
});
});
При таком подходе вы собираете все радиокнопки в форме и присоединяете к ним общую функцию "щелчка". Функция будет скрыть все дивы (ныне маркированных с общим классом "подчиненного"), а затем покажет DIV, который имеет id
атрибут, который соответствует name
атрибута радио - кнопка, которая была нажата.
попробуйте получить доступ к элементу по атрибуту name:
$('input[name=B]').click(function(){// your action here});
или если вам нужно получить доступ по id, добавьте атрибут id:
<input type="radio" id="B" name="B" value="B" onclick="functionb('b')"><img class="photos" src="b.gif" alt="b"><br /><div id="b" class="ButtonDisplayDiv">Show B</div>
Установите общий класс в ваших "дисплеях дисплея кнопок",
<div>
<input type="radio" name="b" value="B"><img class="photos" src="b.gif" alt="b"><br /><div id="b" class="ButtonDisplayDiv">Show B</div>
<input type="radio" name="c" value="C"><img class="photos" src="c.gif" alt="c"><br /><div id="c" class="ButtonDisplayDiv">Show C</div>
<input type="radio" name="d" value="D"><img class="photos" src="d.gif" alt="d"><br /><div id="d" class="ButtonDisplayDiv">Show D</div>
</div>
Затем для вашего обработчика событий переключателя
$('input[type="radio"]').change(function () {
$('.ButtonDisplayDiv').hide(); //hide all the ButtonDisplayDiv Class Elements
$('#' + $(this).attr('name')).show; //show the associated selected div
});
v
илиi
в HTML выше.