Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jquery problem
Forum PHP.pl > Forum > XML, AJAX
cedunio
Witam
Krótko opiszę mój problem. Główna strona jest zrobiona na divach. Podstrony otwierane są w divach za pomocą kodu js. Gdy otwieram stronę zawierającą jquery czy jakikolwiek js rozwala mi wszystko. Ma ktoś może pomysł dlaczego?
dzi3ciol
a moze kawalek kodu?
lord_t
A jeśli na otwieranych stronach usuniesz kod js to śmiga fajnie? Może znaczniki script gdzieś w środku strony Ci psują wszystko? Może wczytuj pliki z jsami oddzielnie i dopisuj do heada.
cedunio
Kod
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
         <title>Przyklad 1-1</title>
         <script type="text/javascript" src="jquery-1_2_3.js"></script>
         <script type="text/javascript">
         $(document).ready(function(){
                   $('#wr3').hide("normal");
                   $('#wr4').hide("normal");
         $('p').click(function(){
                   $('#wr1').hide("normal");
                   $('#wr2').show("normal");
         });
         $('p2').click(function(){
                   $('#wr2').hide("normal");
                   $('#wr3').show("normal");
                   $('#wr4').show("normal");
                    });
       $('p3').click(function(){
                   $('#wr3').hide("normal");
                   $('#wr4').hide("normal");
                   $('#wr2').show("normal");
                    });
       $('p4').click(function(){
                   $('#wr3').hide("normal");
                   $('#wr4').hide("normal");
                    });
  
         });
         </script>
      </head>
   <body>
   <div
     id="wr1"
     style="width:100px;height:100px;
            background-color:yellow;left:200x;top:40px;visibility:visible;"
   >
   </div>
   <div
     id="wr2"
     style="width:100px;height:100px;
            background-color:orange;left:200px;top:70px;visibility:visible; z-index:3;"
   >
   </div>
   <div
     id="wr3"
     style="width:500px;height:500px;left:130px;top:100px;z-index:2;"
   ><img src="1.jpg" >
   </div>
   <div
     id="wr4"
     style="width:100%;height:100%;background-color:#000000; z-index:1;"
     <p4 style=" color:#FF0000">zamknij</p4>
   >
   </div>
   <p>cos</p><p2>cos</p2>
   <p3>cos</p3>
   </body>
   </html>

robie tak. Są to zaczątki jakiejś tam prostej galeria którą chcę zrobić.
Otwieram ją na głownej stronie dzięki:
Kod
   //object detection to return the correct object depending upon broswer type. Used by the getAXHA(); function.
   function getNewHttpObject() {
       var objType = false;
       try {
           objType = new ActiveXObject('Msxml2.XMLHTTP');
       } catch(e) {
           try {
               objType = new ActiveXObject('Microsoft.XMLHTTP');
           } catch(e) {
               objType = new XMLHttpRequest();
           }
       }
       return objType;
   }
  
   //Function used to update page content with new xhtml fragments by using a javascript object, the dom, and http.
   function getAXAH(url,elementContainer){
       document.getElementById(elementContainer).innerHTML = '
  
   <div align="center"><blink class="redtxt">Loading...<\/blink></div>';
       var theHttpRequest = getNewHttpObject();
       theHttpRequest.onreadystatechange = function() {processAXAH(elementContainer);};
       theHttpRequest.open("GET", url);
       theHttpRequest.send(false);
  
           function processAXAH(elementContainer){
              if (theHttpRequest.readyState == 4) {
                  if (theHttpRequest.status == 200) {
                      document.getElementById(elementContainer).innerHTML = theHttpRequest.responseText;
                  } else {
                      document.getElementById(elementContainer).innerHTML="<p><span class='redtxt'>Error!<\/span> HTTP request return the following status message:&nbsp;" + theHttpRequest.statusText +"<\/p>";
                  }
              }
           }

strony otwieram dzieki
Kod
   href="1.php" onclick="getAXAH('1.php','cos');getAXAH('info.html','cosi');return false;

tak jak pisałem wszstko otwieram w divach i nie chce chodzic:/
lord_t
Re, po pierwsze zamieniłem sobie Twój kod AXAH na jQuerowego ajaxa, bo po co cudować z jakimis inny mi skryptami jak w jQ. tez to masz.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Przyklad 1-1</title>
  5. <script type="text/javascript" src="jquery-1.2.3.min.js"></script>
  6. <script type="text/javascript">
  7.  
  8. function gettt(url,id)
  9. $.ajax({
  10. url: url,
  11. cache: false,
  12. success: function(html){
  13. $("#"+id).append(html);
  14. }
  15. });
  16.  
  17. </script>
  18. </head>
  19. <body>
  20. <a href="" onclick="gettt('1.htm','cos');return false;">GO</a>
  21. <div id="cos" style="width:700px;height:400px;">OLD</div>
  22. </body>
  23. </html>


Skorzystanie z tego ajaxa z parametrem html zapobiega tez posiadaniu dwóch sekcji <html> itp. w kodzie, co mogło powodować rozjeżdżanie strony. Jeśli jednak dalej chcesz korzystac ze swoje go skryptu to w pobieranym dokumencie niech bedzie tylko to co miałeś w body.

A jeśli chodzi o skrypty na pobieranej stronie to musisz je jakoś pobrać i wykorzystać funkcje eval do ich odpalenia:)

//
1.Dla testów zamianielm sobie 1.php na 1.htm
2.funkcji eval użyć najlepiej w success ajaxa smile.gif
cedunio
Zastosowałem to co Mówiłeś.

mozesz mi cos wiecej napisac na temat tej funkcji?
lord_t
eval()

Funkcja działa tak, że uruchamia kod podany jej jako argument. Musiał byś więc pobrac kod i podac go do funkcji eval. (uwaga na cudzysłowy w kodzie podanym do eval).
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.