我一直试图解决这个问题几个小时,但是无法让它发挥作用。我正在检索数据库中每个活动的名称,并且每行都会使用正确的数据重新创建此脚本。
<script>var count = 1;</script>
@foreach($data as $scriptdata)
<script>
eval("var id" + count + " = '{{$scriptdata->activiteit}}';");
eval("var clas" + count + " = '{{$scriptdata->activiteit}}';");
eval("var id" + count + " = id" + count .replace(/[^a-zA-Z]/g, '') + ";");
eval("var clas" + count + " = clas" + count .replace(/[^a-zA-Z]/g, '') + ";");
$("#" + id1).mouseenter(function(event) {
console.log("clicked.");
var target = $('.' + clas1);
if( target.length ) {
$('html, body').animate({
scrollTop: target.offset().top-120
}, 1000);
}
});
count++
</script>
@endforeach
变量变得动态而没有任何麻烦,我只是无法得到那个.replace来做它的工作。
人:P
答案 0 :(得分:0)
从服务器端代码输出变量,使用带括号表示法的对象,使用公共类,因此不需要单独选择,或者使变量不在全局范围内。
使变量不在全局范围内
(function() {
var id = '{{$scriptdata->activiteit}}';
var clas = '{{$scriptdata->activiteit}}';
$("#" + id).mouseenter(function(event) {
var target = $('.' + clas);
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top - 120
}, 1000);
}
});
}());
现在你不必担心数数。