页面加载后.click()

时间:2012-07-31 09:52:38

标签: javascript jquery click persistence

我是第一次尝试网址持久性,在页面加载后,我有从网址中点击的元素。当我加载页面时,.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();
    };
})();

请注意,此代码不在实际页面上,而是在我的本地网站上进行测试。实时页面上的持久性部分是不同的。

4 个答案:

答案 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缺少“#”。