2013-10-07 50 views
1

我有一個DIV列表,當點擊時它應該隱藏頂部div以顯示下面的文本。JS變量中的PHP變量不起作用

它工作正常,但是如果我嘗試使用PHP插入DIV數字ID它失敗。

例如,如果我這樣做,將它應用到正確的DIV

<script> 
    $('.reveal2').on({ 
     click: function(){ 
      $('.remove2').css({display: 'none'}); 
     $('.code2').css({display: 'block'}); 
     } 
    }); 
</script> 

但是,如果我這樣做,它不工作:

<?php $example = '2'; ?> 

<script> 
    $('.reveal<?php echo $example ?>').on({ 
     click: function(){ 
      $('.remove<?php echo $example ?>').css({display: 'none'}); 
     $('.code<?php echo $example ?>').css({display: 'block'}); 
     } 
    }); 
</script> 

我創建的一個的jsfiddle工作代碼在這裏:http://jsfiddle.net/RGQaU/

我不能解決爲什麼插入PHP變量會使這不起作用。

任何想法非常讚賞。

更新:我使用jQuery庫上的延遲,關閉延遲上述工作後。不過,我需要推遲jQ,我試圖在window.onload包裝上述代碼,但仍然無法正常工作。

+1

當您嘗試PHP版本時生成的html源代碼是什麼樣的? – Pointy

+0

嗨,夥計們,它完全一樣,它輸出.reveal2,.remove2等等 –

+0

你可以使用相對選擇器,如.prev()和.next(),而不是按類或ID定位元素,並有一個通用函數,而不是一堆具體的。 –

回答

-1
$('.remove<?php echo $example ?>') 

當然,這是缺少分號?

另外,試試這個:

<script> 
    $(document).ready(function() { 
     $('.reveal<?php echo $example; ?>').on({ 
      click: function() { 
       $('.remove<?php echo $example; ?>').css({display: 'none'}); 
       $('.code<?php echo $example; ?>').css({display: 'block'); 
      } 
     }); 
    }); 
</script> 
+0

nope,HTML輸出正確 –

-5

你報價是不完全正確:

變化:

$('reveal<?php echo $example ?>').on({ 

爲:在每個點

$('.reveal'<?php echo $example ?>).on({ 

你用它。

+1

引號是正確的,你的代碼將輸出'$('reveal'2)' –

0

也許你應該嘗試和清理你的代碼,我將這個值寫入到一個js變量,像這樣:

<?php $example = '2'; ?> 

<script> 
    var example = "<?php echo $example ?>"; 
    $('.reveal'+example).on({ 
     click: function(){ 
      $('.remove'+example).css({display: 'none'}); 
     $('.code'+example).css({display: 'block'}); 
     } 
    }); 
</script> 

那麼,爲什麼你應該總是用這樣的方式:

  1. 通過這種方式,您可以將問題保存在一個地方,更易於調試
  2. 您可以隨時使用控制檯調試來檢查存儲在javascript變量中的值:示例
  3. 那些雙引號將爲您提供回退,以防您回顯如下內容:false,null ...防止可能會阻止整個頁面javascript執行的js錯誤。