0

初めて URL の永続性を試しています。ページの読み込み後、URL からクリックしたい要素があります。ページをロードすると .click() が登録されませんが、コンソールに入力すると正しく実行されます。コード (特に(function persistence(formvals){...})();) を (document).ready(function(){...}) セクションに配置しようとしましたが、うまくいきませんでした。ページのロード後、クリックする必要がある各要素で .click() を登録するにはどうすればよいですか?

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

これらのセクションの 2 つの 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

4 に答える 4

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

最初にドキュメント対応を追加したので、準備ができるまで関数は起動しません。2番; #URL内の名前がIDを指している場合、クリックハンドラーはプレフィックスとして必要です。クラスの場合は、で変更#.ます。

于 2012-07-31T10:01:12.383 に答える
0

あなたは(または準備ができて)そしてまた宣言を要求persistence()しなければなりません:document loadformvals

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);
});
于 2012-07-31T09:59:08.000 に答える
0

ここで暗闇の中ですばやく突き刺しますが、永続的にクリックして何かを行うか、dom の後に jquery でライブクリックを使用する方が安全かを常に見つけます。

$(keyval[i]).live("click",function(){});
于 2012-07-31T09:57:19.517 に答える
0

ID をターゲットにしている場合、jQuery セレクターに「#」がありません。

于 2012-07-31T10:05:26.423 に答える