簡體   English   中英

頁面加載后的.click()

[英].click() after page load

我第一次嘗試使用URL持久性,並且在頁面加載后,我具有要從URL單擊的元素。 當我加載頁面時,.click()不會注冊,但是如果我在控制台中鍵入它,它將正確執行。 我試過將代碼(特別是(function persistence(formvals){...})(); )放在(document).ready(function(){...})部分中,但這沒有用。 如何獲得.click()以在頁面加載后以及應單擊的每個元素上進行注冊?

網址: http//specialorange.org/resume/index.html? gc_abstract_heading& gc_ba_analysis

這些部分的兩個ID是: gc_abstract_headinggc_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();
    };
})();

請注意,此代碼不在實時頁面上,而是在我的本地站點上進行測試。 實時頁面上的持久性部分有所不同。

嘗試這個:

$(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();
    };
});

首先,我已經添加了文檔就緒型文件,因此該函數在准備就緒之前不會觸發。 第二; 如果網址中的名稱指向ID,則點擊處理程序需要使用#作為前綴。 如果是班級,請使用更改# .

在這里黑暗中快速刺殺,但我還是可以找到您是否在持久性中單擊或在dom之后使用jquery中的實時單擊更安全。

$(keyval[i]).live("click",function(){});

您必須在document load (或就緒)以及formvals聲明時調用persistence()

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);
});

如果您要定位ID,則jQuery選擇器缺少“#”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM