2016-08-31 51 views
0

我創建了一個頁面,顯示我主頁上的數據庫中的產品列表。當用戶點擊任何產品時,會打開一個模式,此模式包含產品信息以及圖像庫。每次加載php包含時都更改一個jscript變量

$product_handler = new Product ($cao); 
    $products = $product_handler->getProducts(); 
    if($products) { 
     /* @var $prod Product */ 
     foreach ($products as $key => $prod) { 


      ?> 
      <div class="col-md-4" style="overflow: hidden;"> 
      <img class="image-modal" data-toggle="modal" style="width: 192px; height:192px;" data-target="#<?php echo $prod->prod_name;?>Modal" src="<?php echo $prod->prod_icon; ?>"> 
      <a data-toggle="modal" data-id="<?php echo $prod->prod_name ?>" data-target="#<?php echo $prod->prod_name;?>Modal" class="image_modal"><h2 style='color:#2468A6'><b><?php echo $prod->prod_name ?></b></h2></a> 
</div> 
    <!--------Modal starts here--------> 
    <?php 
$pres_path= "dub/place/folder/Presentation.php"; 


include $pres_path; 
?> 
    <?php 
     } 
    } 

然後Presentation.php文件中的模式被稱爲,這包含了所有的產品信息和圖像gallery.The頁面還包含用於導航的圖像在畫廊的JavaScript的一大塊。

在這個JavaScript部分中,我有一個變量用於確定當前圖像是什麼。

<script> 

    var currentImage = 1; 
          $('a.galleryBullet' + currentImage).addClass("active"); 
          $('a.thumbnailsimage' + currentImage).addClass("active"); 
          $('div.description' + currentImage).addClass("visible"); 

//Previous Arrow 

         $('a.previousSlideArrow').click(function() { 
          $('img.previewImage' + currentImage).hide(); 
          $('a.galleryBullet' + currentImage).removeClass("active"); 
          $('a.thumbnailsimage' + currentImage).removeClass("active"); 
          $('div.description' + currentImage).removeClass("visible"); 

          currentImage--; 
          if (currentImage == 0) { 
           currentImage = imagesTotal; 
          } 
          $('img.previewImage' + currentImage).show(); 
          $('a.galleryBullet' + currentImage).addClass("active"); 
          $('a.thumbnailsimage' + currentImage).addClass("active"); 
          $('div.description' + currentImage).addClass("visible"); 

          return false; 
         }); 




</script> 

我遇到的問題是,當我點擊一個產品並導航畫廊,然後關閉模式並選擇其他產品。它繼續與我在之前的模式中結束的數量相同。

在示例中。在模態1中有5個幻燈片,而我關閉在幻燈片編號上的模態。 3.如果我打開包含7張幻燈片的模式2。我會開始在幻燈片編號。 3

我想這個的原因是因爲變量currentImage被所有的模態使用。就這樣,問題就出來

我的問題是

我怎樣才能確保每一件產品被點擊時,該變量currentImage設置爲1

回答

1

每個創建自己的作用域你的「模態」的:

(function(){ 
var currentImage=1; 
alert(currentImage);//1 
//... 
})(); 
alert(currentImage);//undefined 

因此,一個「範圍模式」爲所有的情態動詞的會是什麼樣子:

window.unknownfunction1.currentImage; 
window.unknownfunction2.currentImage; 

之前,它是:

window.currentImage; 
+0

不太清楚你的意思。是否有任何其他信息可供您使用示例進行解釋? –

+0

@Albertus Brand Venter(順便問一下,你是從哪裏來的?):我認爲你的問題是加載的javascripts全部使用相同的變量並互相覆蓋,或者我錯了? –

+0

你是對的。該變量用於包含模態的php文件中。並且每個產品使用相同的php文件。所以我認爲他們都使用相同的全局變量。來自SA,爲什麼? –

相關問題