2017-06-06 50 views
0

我想單擊鏈接時添加一個onClick函數。 基本上,每當我點擊「點擊」它應該在div中添加液體代碼。 它所做的是添加液體代碼是,但只是代碼而不是它應該添加液體代碼的內容。這裏是我的代碼:加載AJAX液體代碼的命令

指數

<a href="#" id="myLink">Click me!</a> 
    <div id="result"></div> 

    <script src="http://code.jquery.com/jquery-latest.min.js" 

type="text/javascript"></script> 
    <script> 
     $("#myLink").on("click", function(){ 
     $("#result").load("liquidcode.html"); 
     }); 
    </script> 

liquidcode.html

{% include 'cod-checker' %} 

什麼點擊後,我得到 「點擊我」 是這個{%包括 '鱈檢查' %}

+0

'liquicode.html'僅僅是一個HTML文件,它不是應該被解析,只是渲染。也許你想先解析成普通的html,然後'加載'它。 –

+0

@FreemanLambda正確,這是我無法解析。我也想確保我加載的內容不被預加載,這是爲了避免頁面加載速度緩慢的問題。 –

+0

我建議在點擊時向您的服務器上的端點發出AJAX請求。使該終端提供一個解析後的'liquidcode.liquid'的HTML版本(假設文件名在這裏)。 –

回答

0

液體渲染服務器端,所以你將無法使用jquery頁面加載後呈現液體。你可以通過從一開始就插入'liquidcode.html'中的任何代碼來避開這個問題,但是通過向顯示設置爲無的div添加一個類來隱藏它。然後,您可以在用戶點擊「單擊」時刪除該類。

+0

問題是,我希望它只在點擊後加載,因爲它會加載一些圖像。我試圖在這裏提高頁面速度。 –

+0

這很有趣,我現在確實在做同樣的事情。我目前正在考慮使用ajax從遠程位置檢索二進制圖像數據,從二進制數據重新創建圖像,然後在ajax請求完成後顯示圖像。這可能也適用於你的情況。如果您不必擔心圖像是否公開託管,那麼處理二進制數據甚至不是必需的。您只需在ajax請求完成後更改圖像標記的src屬性。 – OneCaseTwoCase

+0

不知道如何做到這一點,我目前正試圖從我的頁面隱藏COD選項,並使其僅顯示用戶想要看到它;但是,我想要爲圖像具有相同的功能。一旦我理解了代碼,我可以將其添加到其他事物中。 –

0

回答這裏以擴大我的評論,因爲有來自問題作者的實際代碼的請求。

我的意見,這是雁的基礎:

我會建議作出的點擊一個AJAX請求,那麼,從你的服務器端點 。使該終端提供一個經過解析的html版本 您的liquidcode.liquid(假設文件名在這裏)。

在客戶端,jQuery的輔助AJAX看起來是這樣的:

$("#myLink").on("click", function() { 
 
    $("#result").load("myAwesomeServerEndpoint", function() { 
 
    console.log('BOOM, server-parsed HTML was successfully loaded inside #result'); 
 
    }); 
 
});

至於服務器端,我真的不知道你用的是什麼框架。 (Ruby on Rails?)

在MVC時尚中,您需要註冊名爲「myAwesomeServerEndpoint」的路線。 將控制器分配給該路由,稱爲「myAwesomeServerController」。 這個控制器不應該做太多,它應該只呈現你的liquicode.liquid模板。

僞代碼爲您的控制器(因爲我不知道Ruby on Rails的):

return HtmlResponse(render("liquicode.liquid")); 

確保響應HTML和路由是暴露在AJAX請求,而且這應該是它發送。

同樣,這不是一個解決方案,但只是一個粗略的concenpt