动态jQuery代码:有没有办法将它包含在文件中?

时间:2010-09-12 11:13:37

标签: javascript jquery google-maps inline external

我一直在使用内联jQuery进行开发和测试。我正在使用CodeIgniter,下面引用了我的观点。

我的页面顶部有<script="text/javascript">JQUERY CODE</script>。我的一些代码是动态的,因为它使用PHP变量,例如在进行Ajax调用时,URL前面是<?php echo base_url(); ?>

我已经使代码工作了,但我想将它放在外部JS文件中以保持清洁。我似乎无法想到这样做。我是对的吗?

我网站的一个方面是Google地图。我到处都用它们。同样,代码的一部分是动态的,来自PHP。同样的问题。

作为一个小小的变化,使用地图,我有很多页面上有许多略有不同的地图。无论如何都有效地重用地图代码,或者我将不得不有一些重复的代码?

3 个答案:

答案 0 :(得分:2)

您的自定义设置主要只是google地图等参数的替换吗?如果是这样,为什么不只是将一个JSON对象作为参数进行函数调用。让你的后端通过AJAX请求提供一些JSON数据,将数据传递给函数,然后你就完成了。减少要下载的JS代码,以及更简洁的设置。

// site.js
function displayMap(params) {
  // code to display google map using values from params
  // for instance:
  var lat = params.lat;
  var long = params.long;
}  

要使用此功能,请执行以下操作:

$.get('ajax/mapdata.json?id=5', function(data) {
  displayMap(data);
  alert('Load was performed.');
});

通过创建以下内容从您的应用输出JSON:

{
  lat: 232
  long: 123
}

希望有所帮助!

答案 1 :(得分:0)

好吧,就像在页面内直接做一样。将.js文件重命名为.php脚本,并在.php文件中包含与之前相同的PHP代码。然后,在HTML文件中,使用filename.php(不是.js)。 Web服务器将在脚本上调用PHP并向浏览器发送生成的JavaScript。

答案 2 :(得分:0)

您可以在主页面中创建一个JSON数据块:

<script>
  var pageData = {
    something: 'whatever',
    somethingElse: [ 33.20, 19.02 ],
    moreStuff: false
  };
</script>

然后只从脚本中引用变量“pageData”。