Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jquery, event odnoszący się do kilku div z jednym id nie działa w chrome
Forum PHP.pl > Forum > Po stronie przeglądarki
eFK
Witam serdecznie

Napisałam kod w którym dzięki ajaxowi wczytują się kolejne podstrony serwisu i można to zrobić z kilku miejsc w serwisie. Wszystko działa pięknie w Firefoxie, niestety w Chrome i Operze już nie. Pierwsze trzy div o id="bigger" działają bez zarzutu, ale kolejne trzy (wczytujące dokładnie te same podstrony, co divy wyżej) już nie.

Konsola w FF pokazuje błąd: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsITaskbarTabPreview.invalidate] - nie znalazłam co on konkretnie oznacza, ale nie odnosi się do napisanego przeze mnie kodu i nie przeszkadza w funkcjonownaiu strony. Konsola Chrome nie pokazuje żadnego błędu.

Kod wygląda następująco:
  1. <html lang="pl" xml:lang="pl" xmlns="http://www.w3.org/1999/xhtml">
  2.  
  3. <meta charset="utf-8">
  4. <title>Moje portfolio</title>
  5. <meta content="Ewa, Makowska, strony www, grafika komputerowa" name="keywords">
  6. <link rel="Stylesheet" type="text/css" href="style.css" />
  7.  
  8. <script type="text/javascript" src="jquery-1.4.2.js"></script>
  9. <script type="text/javascript" src="slideshow.js"></script>
  10.  
  11. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  12. <script src="scripts.js"></script>
  13.  
  14.  
  15. /*ajax*/
  16. function ajax(src, cont){
  17. $.ajax({
  18. url: src,
  19. context: document.body,
  20. success: function(responseText) {
  21. $(cont).html(responseText);
  22. $(cont).find("script").each(function(i) {
  23. eval($(this).text());
  24. });
  25. }
  26. });
  27. }
  28.  
  29. /*bigger div*/ /*prawdopodobnie tutaj jest problem - jquery ma pobiertać wszytkie div o id ="bigger", a pobiera tylko...*/
  30. $(document).ready(function(){ /*...pierwsze z nich*/
  31. $('div#bigger').click(function(){
  32. $("#text").animate({
  33. width: "1050px",
  34. left:"150px",
  35. padding:"0"
  36. }, 1500 );
  37. $('#infbox').css('display','none');
  38. })
  39. })
  40.  
  41. /*smaller div*/
  42. $(document).ready(function(){
  43. $('#menu').click(function(){
  44. $("#text").animate({
  45. width: "650px",
  46. left: "520px",
  47. padding:'10'
  48. }, 1500, 'linear' );
  49. $('#infbox').css('display','block');
  50. })
  51. })
  52.  
  53.  
  54.  
  55. </head>
  56.  
  57.  
  58. <div id="all">
  59. <div id="baner">
  60. <div id="slideshow">
  61. <div id="slideshowWind"> <!---tutaj jest cześć z div, które działają bez zarzutu--->
  62. <div id="bigger" onClick="ajax('gallery.php', '#text')" class="slide">
  63. <span id="galdesc"><p>G<br />A<br />L<br />E<br />R<br />I<br />A</p></span>
  64. <img src="img/slideshow/galler2y.png" class="img" />
  65. </div>
  66. <div id="bigger" onClick="ajax('website.php', '#text')" class="slide">
  67. <span id="webdesc"><p>S<br />T<br />R<br />O<br />N<br />Y<br /><br />W<br />W<br />W</p></span>
  68. <img src="img/slideshow/website.png" class="img" />
  69. </div>
  70. <div id="bigger" onClick="ajax('applications.php', '#text')" class="slide">
  71. <span id="webdesc"><p>P<br />R<br />O<br />G<br />R<br />A<br />M<br />Y</p></span>
  72. <img src="img/slideshow/applications.png" class="img" />
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <div id="cont">
  78. <div id="menu" onClick="ajax('textpl.txt','#text')"><p>MENU</p></div>
  79. <div id="teleadr">
  80. <p>e-mail:<a href="mailto:makowskaewa@o2.pl"> makowskaewa@o2.pl</a>&nbsp; | &nbsp; tel: 607079560</p>
  81. </div>
  82. <div id="infbox">
  83. <div id="inf">
  84. <p>NA STRONIE:</p>
  85. <ul> <!---a to co jest tutaj nie chce działać, żadnej reakcji, nawet :hower ze styli css nie reaguje...--->
  86. <li><div id="bigger" onClick="ajax('gallery.php','#text')"><p>galeria</p></div></li>
  87. <li><div id="bigger" onClick="ajax('website.php','#text')"><p>webmastering</p></div></li>
  88. <li><div id="bigger" onClick="ajax('applications.html','#text')"><p>programowanie</p></div></li>
  89. <p>Kilka prostych programów napisanych przy wykorzystaniu php oraz baz danych.</p>
  90. </ul>
  91. </div>
  92. </div>
  93. <div id="text">
  94.  
  95. <div id="footer"><p>Makowska Ewa, &nbsp;<a href="mailto:makowskaewa@o2.pl"> makowskaewa@o2.pl</a>&nbsp; | &nbsp;2012-2015</p></div>
  96. </div>
  97. </div>
  98. </div>
  99.  
  100. </body>
  101. </html>
  102.  


Nie wiem, czy źle odnosze się w jquery do wszystkich div o id#bigger - drugą wersję czyli $("div[id=bigger"]) też próbowałąm wykożystać (również nie działa w chrome i operze), czy tego po prostu nie da się zrobić i musze przekształcić kod na divy o różnych id. Z drugiej strony najbardziej dziwi mnie to że pod Chrome i Operą te trzy problematyczne divy nie wykazują żadnej reakcji, nawet na pseudoklasę :hover?
Będę bardzo wdzięczna za każde wytknięcie mi błędu :-), dzięki któremu mój kod zadziaął prawidłowo pod Chrome i Operą.
ctom
atrybut "id" powinien być unikalny dla elemntów w drzewie html,

zastosuj class
eFK
Sprawdzałam już wcześniej, sprawdziłam jeszcze raz - niestety też nie działa...

czy nikt nie umie mi nic poradzić?
Xelah
Sprawdź, czy to jakis plugin nie wykrzacza się w ten sposób. Wyłącz wszystko co masz i sprawdź czy dalej będziesz miał ten sam błąd.
eFK
Niestety, wyłączenie pluginów nie pomogło

Problem rozwiązany - powodem były źle stworzone style css. #infbox; w której znajdowały się divy po naciśnięciu których miało wykonywać się jquery; miało position:absolute, oraz z-index:-1. Bez tego wykonywanie się jquery nie wyglądało ładnie, jednak w Operze i Chrome, spowodowało to, że ukryte pod innymi warstwami divy były niedostępne. A starczyło tylko usunąć z-index:-1 i wszytko gra oraz wygląda nieźle.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.