document.ready adlı birden çok kez oluyor

2 Cevap php

Benim php app içinde tek bir sayfa oluşturmak için kombine olsun birden şablonlar var. öyle diyorsan senin hakkımızda sayfasında, şablon böyle olmazdı

<?php
    $this->render("header.php");
?>

my about us page

<?php
  $this->render("footer.php");
?>

hangi bir () dahil yapmanın sadece süslü bir yoludur. Ancak, header.php jquery çerçevesinde aracılığıyla document.ready koştu alır bazı javascript vardır, ve bu yüzden başlık gerektirir sayfa yapar. bu yüzden böyle bir şey var

<?php
    $this->render("header.php"); // has its own $(document).ready
?>
<script type="text/javascript">
     $(document).ready(function(){
          console.log("test");
     });
 </script>
my about us page

<?php
  $this->render("footer.php");
?>

Ben yaşıyorum hata document.ready sayfadaki her document.ready için bir kez denir oluyor olmasıdır. Yukarıdaki durumda konsol gösterileri

test

test

Ben header.php oluşturulmasını açıklama ise, document.ready sadece bir kez istediğim gibi çağrılır.

Bir semafor kullanmanın yanı sıra, bu önlemek için daha iyi bir yolu nedir? Ben çıktı tamponlama çalıştı, ancak çalışmak için görünmüyor.

Edit: added final output per request

<script type="text/javascript">
     $(document).ready(function(){
          // do some javascript like highlighting 
          // form elements with specific classes
     });
</script>
  display header here 

<script type="text/javascript">
     $(document).ready(function(){
          console.log("test");
     });
 </script>
my about us page

display footer

2 Cevap

Ben sadece yerel olarak nihai çıkış çalışan denedim ve beklendiği gibi tek bir "test" mesajı konsolunda görünür.

Başka JS kütüphaneleri dahil? Eğer bu neden dışarı düzenlediğiniz JS bazı kod olabilir.

Umarım bu size yardımcı oluyor ... Bu arada demo kodu koymak ama sorunu çoğaltmak mümkün değildi ...

<html>
<head>
  <title>test</title>
</head>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
     $(document).ready(function(){
          // do some javascript like highlighting 
          // form elements with specific classes
      $('.some-element').css('background', '#eec');
     });
</script>

display header here 

<script type="text/javascript">
     $(document).ready(function() {
          $('body').append("<p>test</p>");
     });
 </script>

<p class='some-element'>
my about us page
display footer
</p>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</body>
</html>