2011-01-27 39 views
0

背景画像クリック可能にDIVを作るのに十分な簡単:クリック可能なdivの

あなたは、新しいウィンドウで開くにはとき、アンカーのターゲット要素を使用していないそのことを確認するにはどうすればよい
$(".socialMedia").click(function(){ 
      window.location=$(this).find("a").attr("href"); 
      return false; 
     }); 

私はwindow.openにwindow.locationを切り替えるとエラーが出る。出来ますか?我々はsocialMediaクラスを持つすべての要素を選択しているのJavaScriptのこのビットで THX

答えて

3
$('.socialMedia').click(function(e){ 
    e.preventDefault(); 
    window.open($(this).find('a:first').attr('href'), ''); 
}); 

。これらの要素のそれぞれにコールバック関数をバインドします。この関数は、jQuery Eventオブジェクトを表す1つのパラメータeを定義します。

ユーザーがsocialMeda要素の1つをクリックすると、コールバック関数が実行されます。まず、この関数はjQuery event.preventDefault()メソッドを使用して、ブラウザがデフォルトアクションを実行するのを停止します(クリックされたリンク要素で定義されたURLなど)。次に、window.open()メソッドを使用して、希望のURLを開きます。このURLは、クリックされたsocialMedia要素内の最初のリンク要素を検索することによって取得されます(複数のリンクがある場合のみ)。

+0

+1、なぜ ':first'ですか? – hunter

+0

@ jsummers-は完璧に動作します。だから私は(e)とe.preventDefaultがfalseを返すよりも優れていると仮定しています; 2番目の部分について説明できますか?私は "window.open"が働いていて、セレクタを使っていることがわかります。最初にdivの最初のリンクを取得しますか?後で( 'href')は何をするのですか?私が考える目標と何か関係がありますか? –

+0

@hunter、私は彼のマークアップについてあまり知らないので ':first 'を選んだ。 –

関連する問題