jquery .attr () работает только в chrome?

#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>