2012-10-24 9 views
5

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

このような何か:

$(document).ready(function() { 

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

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

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

ページロード時に最も人気のあるタグを呼び出すAJAXリンクをトリガーしたいと考えています。

これが動作すれば、これは私のすべての問題を解決します。リンクは$(「a.tagcloudリンク」)

されていることを

、私がしようと、これを行うに失敗私の髪を引っ張っ時間を費やしてきた、この上で私を助けてくださいしてください。ありがとうございました。

+1

あなたは$( 'a.tagcloudリンク' をしてみてくださいでした).first()。trigger( 'クリック'); – Tariqulazam

+0

これはうまくいきませんでした。@Tariqulazam –

+1

あなたのコメントから、あなたが実際に発生している問題を概説していないようです。あなたがしようとしていることを正確に説明して、答えが特定のユースケースを対象とすることができるようにしてください。 – JamesSwift

答えて

0

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

+0

ええ、私はこれらの人々がclick()について何を得ていないのか理解できません。あなたはGreasemonkeyスクリプトで何かを自動化しようとしている同じボート。 –

1

私は正しく質問を理解している場合:

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

それはうまくいきませんでした:( –

+0

あなたのリンクが動力学とアペンダーをDOMツリーに挿入した直後に使用する - '#( 'body')。append '...'); $( 'a.tagcloud-link')。click(); ' – Reflective

+0

コードは通常のHTMLで、.append()ではなく、追加されています インライン

1

これはjQueryのの適切な使用である

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

OR

$('a.tagcloud-link').trigger('click') 
+0

これはうまくいきませんでした。ページが開くときにクリックしたいリンクは、それ自体jQuery codで生成されたコードです動的にしかし、私は、ドキュメントが読み込まれたときにそのクリックをシミュレートしたいと思います。確かに方法がありますか? –

1
$(function() { 
    $('a.tagcloud-link').on('click', function() { 
      // execute code here 
    }); 
}); 

を試してみてください。

+0

ページの読み込み時にクリックされたリンクをシミュレートします。私はあなたのコードがそれをするとは思わない。 –

+1

さらにコードを追加する必要があります。スクリプトでa.tagcloud-linkがクリックされたと思ったら、スクリプトには何をしますか? –

+0

これはコードです:http://jsfiddle.net/Wnra9/ –

6

はこれを試してみてください:[0]を使用して

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

ので、これはリンクの指定hrefにナビゲーションが発生しますDOM object's (non-jQuery) .click() methodを呼び出し、jQueryオブジェクトの最初のDOMオブジェクトへの参照を取得します。

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

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

+0

これは動作しませんでした。関数はページロード時にそのコードをロードしようとした後に完全に機能しなくなりました。 –

+0

これはコードです:jsfiddle.net/Wnra9 –

+1

「a.tagcloud-link」セレクタと一致する要素が存在しない場合はエラーが表示されるので、最初に実際に要素を作成したことを確認してください。あなたのフィドルのコードはそのような要素を作成せず、HTMLを表示していないので...(あなたのフィドルはあまり役に立ちません:JSコードをJavaScriptウィンドウに投稿する必要があります(左下)あなたが配置したHTMLウィンドウには表示されません)。 – nnnnnn

1

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

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. 
    } 
} 
+0

フレームが間違っているかもしれませんが、私が達成したいことを理解していないように思われるかもしれませんが、それをフレームにする方法を教えてください。とにかく、助けてくれてありがとう! –

+0

私は、あなたがクリックをシミュレートしたいと思っているどこかを読んで、それの視覚的な外観を探していますか?またはボタンがあなたのwordpressテンプレートでクリックされたことを覚えておく何かをお探しですか? – Jim

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> 
+1

人それは私と一緒に働いた..... :) – Heart

+0

あなたはあなたのために働いた答えのどれも私が追加した上記のコードをチェックしないと言った。それは100%男が働く...私はそれを5回チェックし、完璧に働いています! – Heart

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

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

0

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

それはこの

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

のようにすると動作します必要があります:)

関連する問題