我认为我走在正确的轨道上,但我需要你的帮助。
我使用此代码获取我的网址参数
function $urlParam(name){
if(window.location.href.indexOf(name) != -1) {
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
return 0;
}
$(function() {
var $page='#'+$urlParam('id');
});
而不是我试图用
过滤这些数据$side_menu.find('> li > a').filter($page).click();
但这不起作用。
我有什么可以做的,所以我可以用$ page变量过滤数据吗?
如果您需要更多数据,我很乐意为您提供。
提前谢谢你, Prokka
答案 0 :(得分:0)
好的,先关闭,而不是:
window.location.href
你不妨使用:
window.location.search
因为它只是URL的参数部分(您想要的部分)。另外,你的变量:
$page
...“$ foo”变量命名约定通常适用于jQuery对象变量。换句话说:
var foo = "foo"; var $foo = $(foo);
所以(除非你有自己的,不同的约定)我认为“$ page”应该真正命名为page。
至于:
$side_menu.find('> li > a').filter($page).click();
我无法确定,但看起来你正在过滤id。那是对的吗?如果是这样,过滤器毫无意义;根据定义,ID在页面上是唯一的,所以只需执行:
$($page).click();
完全相同(甚至是表现方面)。
但这不起作用。 有什么我能做的,所以我可以用$ page变量过滤数据吗?
在不知道页面变量值的情况下,很难说。我建议添加这个:
console.log($page); $side_menu.find('> li > a').filter($page).click();
好吧,如果您使用Firebug或带控制台的浏览器(如果不是......您应该使用Firebug ;-)但您也可以将其更改为“alert($ page)”)。
当你这样做时,你应该看到你真正使用的选择器。最有可能出现问题。如果您没有看到任何明显的内容,请尝试添加:
console.log($page); console.log($($page)); $side_menu.find('> li > a').filter($page).click();
(警告技巧不适用于此)。这应该显示使用选择器选择的jQuery元素(如果有的话)。在这个和查看选择器本身之间,你可能会发现问题(如果你不这样做,也许可以尝试在Firebug控制台中手动运行命令)
答案 1 :(得分:0)
类似的东西:
<script>
// Define event handler generator
function handleClick(url) {
var location = url;
return function() {
window.location = location;
return false;
}
}
$(function () { // onReady
$("A").each(function() { // connect an event handler for every A
// Generate handler for the correct URL
var handler = handleClick($(this).attr("href"));
// Connect generated event handler
$(this).click(handler);
});
}
</script>
应该让你保持现有的URL按照他们已经做的方式工作(对于非JS用户),但是对于其他人你将会触发一个事件,它做同样的事情,但是jQuery-invoke-able
答案 2 :(得分:0)
非常感谢你们!
最后我找出了我的错误......我在页面加载后定义了页面变量,因此我的脚本无法读取。
现在看起来像这样:
function $urlParam(name){
if(window.location.href.indexOf(name) != -1) {
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
return 0;
};
之后
var page='#'+$urlParam('id');
if (page== '#0')
strana ='#News';
$side_menu.find('> li > a').filter($(page)).click();
现在几乎一切都很好,除了谷歌浏览器,它只选择标签但不显示内容。我在这里阅读jQuery find() returning an empty string in Google Chrome,它是关于Ajax中的Chrome和HTML。
此链接或链接的任何提示或提出其他问题?
再次感谢你们,特别是机器人!