[更新20100922]jQuery Location Select 插件- 地址联动、地理检测
?
最新版本的LocationSelect已经将其与jQuery分离,但做了一个jQuery的适配器,可以和jQuery一起使用。而且现在可以支持任意级别联动??用户的地址选择往往是网络应用中不可缺少的一部分,可是遇到了以下问题:
LocationSelect插件具有以下特点,有效的解决了以上三个问题:
一个在线演示可以在http://pagetalks.com/share/LocationSelect找到。
该演示实现了一个自动探测用户地理位置并自行选择的标准案例。
我测试过如下浏览器:Safari5、Safari Mobile(iOS 4.0.1)、Firefox3、IE6、IE7、IE8、Opera10
?
代码寄存在GitHub : http://github.com/RobinQu/LocationSelect-Plugin
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="http://www.JSON.org/json2.js" type="text/javascript"></script>
<script src="http://j.maxmind.com/app/geoip.js" type="text/javascript"></script><script src="http://maps.google.com/maps?file=api&v=2&key=XXXXXXX_YOUR_API_KEY_XXXX&sensor=false" type="text/javascript">
<script type="text/javascript" src="LocationSelect.js"></script>
$(function() {$("select").LocationSelect({ name : "areas",labels :["请选择一个省份或直辖市", "请选择一个城市", "请选择一个区"]});
还可以选择使用非jQuery的初始方法:
var ls = new com.elfvision.kit.LocationSelect({labels :["请选择一个省份或直辖市", "请选择一个城市", "请选择一个区"],elements : $("select").get()});
有很多同学想要进行定制操作,从1.1版本开始,就已经把大部分重要的算法给独立到单独的接口里面,方便大家定制。首先讲一下这个插件的工作原理。
注意该项目中所有的属性均为字符串。
你可以用fetch方法从后台取得数据(不管是啥数据,只要复合数据项目的结构规定)之后,根据这些数据实现find方法。
你可以传入的另外一个元素是detector函数。这个是执行自动选择的函数。默认的detector函数执行了地理位置的探测,但你可以实现你自得探测算法。只要最终使用LocationSelect.select()方法选择一组数据项。例如:
that.select(["湖北省",“武汉市”]);
这些值始终会根据List的传入顺序进行比对。如果List的数目大于给出的数组元素的数量,将不会对那些没有对应数值的List进行选择;如果传入的数值数组元素个数大于List个数,剩下的数组元素将会被抛弃。
通过传入自定义的ListHelper和detector,你可以完全自定义出类似于多级商品门类选择之类的联动菜单应用。也就不局限于选择一下地址而已了??
?
1 楼 robinqu 2010-03-23 竟然没有回复?? 2 楼 bluemusic 2010-03-24 IE8测试下来没什么问题,等会下了看看代码 3 楼 ilovewei 2010-03-24 我居然是前三 4 楼 lobbychmd 2010-03-24 还以为有地图。。。 5 楼 kjj 2010-03-24 早一天,我昨天就不费劲做这个了!!!!!