我想使用URL :: asset将url传递给javascript 而不是直接网址
$("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)');
但这当然不起作用,问题是它是如何看待它是否可以使用。
答案 0 :(得分: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>
然后在 your-js-file.js 中,你可以这样做:
$("select#lang").css("background-image",
flagsUrl + $("select#lang").val() + '.png)');
答案 1 :(得分:0)
试试这个
$("select#lang").css("background-image", 'url(/images/flags/'+ $("select#lang").val() + '.png)');
答案 2 :(得分:0)
它没有用,因为你的javascript文件(something.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)');
答案 3 :(得分:0)
如果将图像粘贴到文件夹public / images / abc.png 您可以使用
'/ images /'
代替
{{URL :: asset('/ images')}}
在您的js文件中。
.blade中的示例:
<img src="{{ URL::asset('/images') }}/abc.png" />
在.js中:
var image = "<img src='/images/abc.png' />";