2016-10-06 20 views
1

我想使用的網址::資產通過URL的JavaScript ,而不是直接的URL如何使用Laravel網址::資產jQuery中或JS

$("select#lang").css("background-image", 'url(http://pascha.org/img/' + $("select#lang").val() + '.png)'); 

我願意做這樣的事情:

$("select#lang").css("background-image", '{{ URL::asset('/images/flags/') }}' + $("select#lang").val() + '.png)'); 

但這當然不起作用,問題是它應該怎麼看,如果是根本不可能的。

回答

3

爲什麼不工作的呢?

$("select#lang").css("background-image", 
    '{{ URL::asset('/images/flags/') }}' + $("select#lang").val() + '.png)'); 

它不起作用的唯一原因是如果您在刀片文件之外和單獨的JS文件中執行此操作。除非我錯過了什麼?

如果您確實有一個單獨的JS文件,您可以在標記中聲明JS文件之前在刀片文件中分配一些「全局」變量。

例如:

<script> 
    // "global" vars, built using blade 
    var flagsUrl = '{{ URL::asset('/images/flags/') }}'; 
</script> 
<script src="your-js-file.js"></script> 

然後在您的JS-file.js,你可以這樣做:

$("select#lang").css("background-image", 
    flagsUrl + $("select#lang").val() + '.png)'); 
+1

你有權利,js必須在刀片文件中,而不是在單獨的js腳本中。謝謝! – Tomasz

+0

不客氣! – haakym

0

嘗試這樣

$("select#lang").css("background-image", 'url(/images/flags/'+ $("select#lang").val() + '.png)'); 
0

它不工作,因爲你的JavaScript文件(東西。 js)不被PHP解析。意思是,PHP不檢查JavaScript代碼的JavaScript文件。

雖然你可以在它們之間傳遞變量。最簡單的辦法是做這樣的事情在您的視圖(刀片文件):

<script type="text/javascript"> 
    var url = '{{ URL::asset('/images/flags/') }}' 
</script> 

在JavaScript,你現在有一個叫做url與值全局變量您正在尋找,你可以在你使用它javascript文件:

$("select#lang").css("background-image", url + $("select#lang").val() + '.png)'); 
+0

var url必須用引號'var flagsUrl ='{{URL :: asset('/ images/flags /')}'''' – Tomasz

+0

你是對的!我的錯! – flipjms

+0

分號結尾:) – Tomasz

相關問題