2016-09-21 64 views
0

我的代碼,我可以通過點擊更改我的文字:如何在jQuery中使用php函數?

$('.SeeMore').click(function(){ 
 
\t \t var $this = $(this); 
 
\t \t $this.toggleClass('SeeMore'); 
 
\t \t if($this.hasClass('SeeMore')){ 
 
\t \t \t $this.text('+ more'); \t \t \t 
 
\t \t } else { 
 
\t \t \t $this.text('- less'); 
 
\t \t } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="SeeMore" style="cursor:pointer">+ more</li>

這是工作好爲止。但是,因爲我有我的頁面的不同語言版本我想用PHP交流的話:

<script> 
     $('.SeeMore').click(function(){ 

     var more = <?php echo $lang['MORE']; ?> 
     var less = <?php echo $lang['LESS']; ?> 
     var $this = $(this); 
     $this.toggleClass('SeeMore'); 
     if($this.hasClass('SeeMore')){ 
      $this.text(more);   
     } else { 
      $this.text(less); 
     } 
    });</script> 

不幸的是現在我的代碼不工作了,我不知道爲什麼。

+3

你需要使用'「',防爆單擊事件:' var more =「<?php echo $ lang ['MORE']; 「' –

+0

嘗試呼應整個

1

你忘了分號和報價:

var more = "<?php echo $lang['MORE']; ?>"; 
var less = "<?php echo $lang['LESS']; ?>"; 

編寫代碼生成代碼是硬而容易造成混淆。更好地使用體面的模板系統(例如Smarty)。

1

你就忘記了引號:

var more = "<?php echo $lang['MORE']; ?>"; 
var less = "<?php echo $lang['LESS']; ?>"; 
1

使用數據屬性

HTML:

<li class="SeeMore" data-less="<?php echo $lang['LESS']; ?>" data-more="<?php echo $lang['MORE']; ?>" style="cursor:pointer">+ more</li> 

JS:

$('.SeeMore').click(function(){ 

     var more = $(this).attr('data-more'); 
     var less = $(this).attr('data-less'); 
     var $this = $(this); 
     $this.toggleClass('SeeMore'); 
     if($this.hasClass('SeeMore')){ 
      $this.text(more);   
     } else { 
      $this.text(less); 
     } 
    }); 

PS:不要忘記你包裹在一個文檔準備聲明