为什么我必须在javascript函数定义之外定义变量? (jQuery / #anchor问题)

时间:2009-10-18 03:25:45

标签: javascript jquery

我正在编写一个jQuery函数,它依赖于知道页面的当前#anchor。我正在使用jQuery URL Parser插件来获取锚点。

 $.fn.vtabs = function() {
   alert("Your anchor is "+$.url.attr('anchor'));
 }

这段代码无休止地给我锚“#nav”(我在一些链接中使用了#nav)。我可以无限次地在浏览器栏中键入“#newanchor”,然后点击使用不同锚点的url到这个页面,但这段代码总是给我“#nav”。

我通过将代码更改为:

来解决我的问题
 var current_anchor = $.url.attr('anchor');
 $.fn.vtabs = function() {
   alert("Your anchor is "+current_anchor);
 }

现在它总能给我正确的锚点。但我不知道为什么,在函数之外定义变量似乎很麻烦。

1 个答案:

答案 0 :(得分:0)

看起来该插件可能会有一些缓存。为什么不跳过插件并使用window.location.hash来获取锚点?