我是第一次尝试网址持久性,在页面加载后,我有从网址中点击的元素。当我加载页面时,.click()不会注册,但如果我在控制台中键入它,它会正确执行。我已经尝试将代码(特别是(function persistence(formvals){...})();
)放在(document).ready(function(){...})部分,但这不起作用。如何在页面加载后以及应该单击的每个元素上注册.click()?
url:http://specialorange.org/resume/index.html?gc_abstract_heading&gc_ba_analysis
这些部分的两个ID是:
gc_abstract_heading
和
gc_ba_analysis
,因此控制台中的$(gc_abstract_heading).click()
正常工作,而不是代码中。
代码:
var formvals = {};
var keyval = location.search.replace('?', '').split('&');
$.each(keyval, function () {
var splitval = this.split('=');
formvals[splitval[0]] = splitval[1];
});
console.log(keyval);
console.log(formvals);
(function persistence(formvals) {
for ( i=0 ; i < keyval.length ; i++ ) {
console.log(keyval[i]);
$(keyval[i]).click();
};
})();
请注意,此代码不在实际页面上,而是在我的本地网站上进行测试。实时页面上的持久性部分是不同的。
答案 0 :(得分:1)
试试这个:
$(document).ready(function () {
var formvals = {};
var keyval = location.search.replace('?', '').split('&');
for (var i = 0; i < keyval.length; i++) {
console.log('Trigger click on: '+keyval[i]);
$('#'+keyval[i]).click();
};
});
首先我添加了文档就绪,因此该函数在准备好之前不会触发。第二;如果url中的名称指向id,则click-handler需要#
作为前缀。如果是课程,则使用#
更改.
。
答案 1 :(得分:0)
在黑暗中快速刺伤但是我总是发现你是否通过点击持久性或者在dom之后使用jquery中的实时点击更安全。
$(keyval[i]).live("click",function(){});
答案 2 :(得分:0)
您必须在persistence()
(或准备好)以及document load
声明中致电formvals
:
function persistence(formvals) {
for ( i=0 ; i < keyval.length ; i++ ) {
console.log(keyval[i]);
$(keyval[i]).click();
};
}
$(function() {
var formvals = {};
var keyval = location.search.replace('?', '').split('&');
$.each(keyval, function () {
var splitval = this.split('=');
formvals[splitval[0]] = splitval[1];
});
console.log(keyval);
console.log(formvals);
persistence(formvals);
});
答案 3 :(得分:0)
如果您要定位ID,则jQuery Selector缺少“#”。