5

ページ上にリンクがあり、ページが読み込まれたときにプログラムでクリックしたいと思います。

このようなもの:

$(document).ready(function () {

   // code to make the page think $('a.tagcloud-link') is clicked
});

リンクは、Wordpressバックエンドで人気のあるタグを表示するAJAX呼び出しです。

関数は多くのものに依存しているため、簡単に編集することはできません。

そこで、ページの読み込み時に最も人気のあるタグを呼び出すAJAXリンクをトリガーしたいと思います。

それがうまくいけば、これは私のすべての問題を解決します。

そのリンクは$('a.tagcloud-link')です

どうか、これについて私を助けてください。私はこれをしようとして失敗して髪を抜くのに何時間も費やしました。ありがとうございました。

4

11 に答える 11

7

これを試して:

$('a.tagcloud-link')[0].click();

を使用すると、jQueryオブジェクトの最初のDOMオブジェクトへの参照が取得されるため、これによりDOMオブジェクトの(jQuery以外の)メソッド[0]が呼び出され、リンクの指定されたへのナビゲーションが行われます。.click()href

jQueryの.click()メソッドを使用すると、要素にバインドしたクリックハンドラーが呼び出されますが、デフォルトの動作で実際にリンクをたどることはありません。

本当に簡単なデモ:http://jsfiddle.net/mtBav/

于 2012-10-24T00:19:31.257 に答える
4

その要素がjQueryにバインドされたイベントハンドラーも所有している場合は、単に呼び出すか、短くすることができます。.trigger( 'click' ).click()

$(function() {
    $('a.tagcloud-link').click();
});

もちろん、を呼び出すときは.click()、そのイベントハンドラーがすでにバインドされている必要があります。

于 2012-10-24T00:10:11.937 に答える
3
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("a#tobeclicked").click(function () {
// if it has to be href
var tohref = $(this).attr("href");
alert(tohref);
window.location=tohref;


// else you want add some functions

$("#mydiv").fadeIn();

});
$("a#tobeclicked").trigger('click');
});
</script>
<a id="tobeclicked" href="http://www.google.com">Go!</a>
<div id="mydiv" style="display:none;">Stroam</div>
于 2012-10-24T04:32:03.273 に答える
1

私が質問を正しく理解した場合:

   $('a.tagcloud-link').click();
于 2012-10-24T00:09:44.780 に答える
1

$('a.tagcloud-link')。click()を既にバインドしている場合は、その関数が呼び出されます。次のコードが機能するはずです。

$(document).ready(function () {
 $('a.tagcloud-link').click();
});

ただし、hrefでリンクを開きたい場合は、を使用する必要がありますwindow.location

于 2012-10-24T00:10:26.260 に答える
1

試す

$('a.tagcloud-link').click();

また

$('a.tagcloud-link').trigger('click')
于 2012-10-24T00:10:32.847 に答える
1
$(function() {
     $('a.tagcloud-link').on('click', function() {
          // execute code here
     });
});

これはjQueryの適切な使用法です。

于 2012-10-24T00:11:24.790 に答える
1

あなたに正直に言うと、ここにいる他のみんなは正しいと思いますし、質問は間違っていると思います。しかし、ここに私の試みがあり、私がしたのはそれを少し違うフレームにすることだけだったと思います。助けようとしているだけです。

document.addEventListener("DOMContentLoaded", function() {
    EventL();
});

// global
var tagLoad = false;

function eventL() {
    $('a.tagcloud-link').on('click', function() {
       tagLoad = true;
    });

    // you can repurpose this, its for page refresh right now. but
    // I think it helps with your general idea?
    $(window).load(function(){ 
       init();
    });
}

function init () {
    if (tagLoad == true) {
         // Load your tags.
    }
}
于 2012-10-24T00:51:55.677 に答える
0

これらのどれも役に立ちませんでした。リンクをバイパスしてロード時に実行することで、自分で修正しました。

于 2012-10-25T00:05:17.463 に答える
0
function my_admin_head(){
echo 
'<script type="text/javascript">
    jQuery(function( $ ){ 
        $(\'a.tagcloud-link\').each( function(){
            tagBox.get( $(this).attr(\'id\') );
            $(this).unbind().click(function(){
                $(this).siblings(\'.the-tagcloud\').toggle();
                return false;
            });
        return false;
    });
});
</script>';
}
add_action('admin_head', 'my_admin_head');

多分それは誰かを助けることができます。

于 2014-10-16T09:09:39.037 に答える
0

おそらく、要素にアクセスするために使用していた方法は、jquery構文とjavascriptを混合することです。私もこの問題を抱えていますが、間違った方法で要素にアクセスしようとしていました。

こんな感じでした

$(document).ready(function(e){
        alert(location.hash);
        if (location.hash == "#22") {
            $("gallery div a")[1].click(); //without #
        };
    })

しかし、このようにする必要があります

$(document).ready(function(e){
        alert(location.hash);
        if (location.hash == "#22") {
            $("#gallery div a")[1].click(); //with #, cause I was using an ID
        };
    })

そして動作します:)

于 2016-09-09T01:16:20.550 に答える