#jquery #jquery-selectors
#jquery #jquery-селекторы
Вопрос:
Кто-нибудь знает, почему этот код работает только в chrome? Я хочу добавить более одного слайдера и начинаю экспериментировать, манипулируя ими на основе их идентификаторов!
<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" >
</script>
<script type="text/javascript">
$(document).ready(function(){
$(".flip").click(function(){
var currentId = $(this).attr('id');
panel = "#panel" currentId;
$(panel).slideToggle("slow");
});
});
</script>
<style type="text/css">
div.panel,p.flip
{
margin:0px;
padding:5px;
text-align:center;
background:#e5eecc;
border:solid 1px #c3c3c3;
}
div.panel
{
height:120px;
display:none;
}
</style>
</head>
<body>
<div class="panel" id="panel1">
<p>Because time is valuable, we deliver quick and easy learning.</p>
<p>At W3Schools, you can study everything you need to learn, in an accessible and handy format.</p>
</div>
<p class="flip" id="1">Show/Hide Panel</p>
<div class="panel" id="panel2" >
<p>Because time is valuable, we deliver quick and easy learning.</p>
<p>At W3Schools, you can study everything you need to learn, in an accessible and handy format.</p>
</div>
<p class="flip" id="2">Show/Hide Panel</p>
</body>
</html>
Комментарии:
1. Как минимум, вы не можете использовать «2» в качестве идентификатора, что может быть не вашей проблемой, но с этого можно начать.
2. У меня этот код отлично работает в Chrome, FF и IE8 (Демо: jsfiddle.net/Jaybles/mAG7B ). Хотя я должен заявить, что JSFiddle не предлагает jQuery 1.4.2, поэтому он использует jQuery 1.4.4. Возможно, требуется обновление вашей платформы jQuery.
Ответ №1:
Здесь я бы даже не стал возиться с поиском DIV на основе добавления чисел к идентификатору, это просто кажется слишком сложным способом выполнения, Почему бы просто не вложить панели, которые будут отображаться по щелчку мыши
http://jsfiddle.net/samccone/b6RkH/3/
И ваш код работал во всех браузерах, которые я тестировал, используя новейшую версию jquery
Комментарии:
1. Хорошо, я скачаю последнюю версию jquery!! Спасибо за образец!!
2. Эй, есть идеи, почему это может не работать? Я собираюсь написать много divs, поэтому я не хочу писать каждый отдельный, я хочу создать их вот так, но функция не скрывает и не показывает.$(document). готово(функция () { $(«.flip»).click(функция () { $(this).next().slideToggle(«медленный»); }); var p = $(‘<p></p>’).addClass(‘flip’).text(‘нажмите здесь’); var div = $(‘<div></div>’).addClass(‘панель’).text(‘ привет, мир’); p.добавить(div); $(«#preguntas»).добавить(p); });
Ответ №2:
<script type="text/javascript">
$(document).ready(function(){
$(".flip").bind('click',function(){
var currentId = $(this).attr('id');
var panel = "#panel" currentId;
$(panel).slideToggle("slow");
});
});
</script>