2013-12-17 40 views
0

我有一個動態頁面從數據庫中加載用戶內容。如果用戶的帖子大於50個字符,我回顯此代碼: $data['string'] = substr($data['string'], 49, 50).$showmore其中$showmore = '<a href="#" class="showmore">Show More</a> 一切工作到這一點,我只是不知道如何更改substr值與jQuery時,單擊「顯示更多」鏈接。如果需要更多信息,我會更新此信息。PHP/jQuery縮短字符串,並點擊顯示更多

+0

爲此使用ajax。 –

+0

你的意思是這樣的? http://demos.julienrenaux.fr/#/demos/jquery/load-more-widget-using-php-ajax-and-jquery –

+1

你將永遠無法使用jQuery編輯這些值。這是PHP代碼,它在加載之前呈現頁面。 jQuery只能在加載之後修改頁面。您確實可以向服務器發出另一個AJAX請求以獲取完整信息。或者你可以讓PHP編寫所有的字符,並使用jQuery將其切斷。點擊你可以'再次'切除它們。您也可以將整個值插入到HTML'title'元素中,然後將鼠標懸停在所述元素上。 – Viridis

回答

4

如果您輸出PHP中的所有文本,則可以使用此小提琴使事情變得有趣。

小提琴:http://jsfiddle.net/iambriansreed/bjdSF/

jQuery(function(){ 

    var minimized_elements = $('p.minimize'); 

    minimized_elements.each(function(){  
     var t = $(this).text();   
     if(t.length < 100) return; 

     $(this).html(
      t.slice(0,100)+'<span>... </span><a href="#" class="more">More</a>'+ 
      '<span style="display:none;">'+ t.slice(100,t.length)+' <a href="#" class="less">Less</a></span>' 
     ); 

    }); 

    $('a.more', minimized_elements).click(function(event){ 
     event.preventDefault(); 
     $(this).hide().prev().hide(); 
     $(this).next().show();   
    }); 

    $('a.less', minimized_elements).click(function(event){ 
     event.preventDefault(); 
     $(this).parent().hide().prev().show().prev().show();  
    }); 

}); 

source