2013-01-10 112 views
0

我在我的WordPress主題的home.php文件中創建了這個腳本,用於計算與數字(1.408)相關的div寬度的值。此操作爲我提供了結果(在$chars變量內)以建立用於響應式設計摘錄的字符數。如果div更大或更薄,我的WordPress摘錄中會有不同數量的字符。WordPress摘錄 - Javascript - PHP - Ajax?

這是我在HOME.PHP上發佈的代碼。 Javascript後面跟着PHP代碼片段。 我知道PHP內部的JavaScript變量是不可能沒有Ajax(在其他論壇上閱讀),但我不明白究竟要做什麼。我的代碼不太好。請清楚,如果可能的話,一些例子!

<script type='text/javascript'> 
jQuery(document).ready(function() { 
var $myDiv = jQuery('#last_post_img_text'); 
var $results = jQuery('#results'); 
var $chars = jQuery($myDiv.outerWidth()/1.408); 
</script>  

<?php new_excerpt($chars); ?> 
+0

那你到底在問什麼? –

+0

如何讓這個變量$ chars在PHP代碼中工作。我認爲Ajax是必要的,但不知道如何。或者,如果可能知道如何使用PHP來獲得DIV寬度(所以,沒有Javascript,也許我可以跳過這個問題?) – user1966524

+0

您必須明白,JS在客戶端工作,而php在服務器端。所以PHP文件呈現頁面的源代碼,然後在用戶瀏覽器中呈現。然後你用JS訪問已經呈現的元素。 如果你想要加載一個內容,請檢查它的長度,然後將其剪下來,你需要.ajax加載一個php文件,其中包含一個可以讓php文件返回更多或更少「字符」的變量。 –

回答

0

我會建議一種方法: 加載一個頁面,檢查判斷元素的寬度和高度,然後使用$ .ajax加載元素內容,併發送某種變量來決定使用多少個字符。 如果你想做到這一點在WordPress的方式瞭解:

add_action('wp_ajax_$handlename', 'function_to_run'); 
add_action('wp_ajax_nopriv_$handlename', 'function_to_run'); 

將reposnd到你的Ajax請求。

wp_enqueue_script('theme_js', get_bloginfo('template_url') . '/js/jquery-theme.js', array('jquery'), THEME_VERSION, false); 
$protocol = isset($_SERVER["HTTPS"]) ? 'https://' : 'http://'; 
$params = array('ajaxurl' => admin_url('admin-ajax.php', $protocol) ); 
wp_localize_script('theme_js', 'theme_js', $params); 

這可能來方便,如果你不知道如何WP-ajax.php本地化發送到jQuery的$就要求。

+0

非常感謝Marcin! ;-) – user1966524

+0

如果您喜歡答案,請將其投票並標記爲正確。它有助於社區成長:)。 –

0

用Ajax重新加載評論看起來是一個不好的決定。你爲什麼要繼續重新加載沒有真正改變的內容。我認爲你最好的選擇是使用jQuery插件。

一個似乎做你想要的是http://www.bramstein.com/projects/text-overflow/

或者,您可以查看CSS3屬性的「文本溢出」(http://www.w3schools.com/cssref/css3_pr_text-overflow.asp)。

+0

有什麼問題與評論有關? –

+0

糟糕,你說得對。當然我想說節選!要點是,如果你有一個響應式設計,頁面的形狀因子可能會多次改變。示例:如果我重新調整瀏覽器的大小,但不想重新加載內容,而是改爲操作它。 –