Jqueryをクリックするとリンクのように動作するimgをクリックすると(リンクをトリガーする)

私は問題がある、私はいくつかの李を持って、それらの中に私はリンクと画像があります。私が望むのは、誰かがリンクを引き起こす画像をクリックするときです。私はリンクにイメージを置くことはできません、理由を尋ねないでください:)...だから基本的にはこのように見えます

  • sometext
  • 
    
  • sometext
  • ...
    

    そして私はこのようなことをすることを考えていた:

    $(img).click(function(){
      var link = $(this).prev;
      $(link).trigger('click');
    })
    

    私はこれが正しくないことを知っていますが、私はあなたがあなたの助けに感謝の絵を持っていると思います。

    2
    なぜあなたはリンクにイメージを置くことができないのですか?
    追加された 著者 SliverNinja - MSFT,
    何も他の人が動機を分かなければ、常に前提に挑戦してください。
    追加された 著者 SliverNinja - MSFT,
    OPからの引用: "私はリンクにイメージを置くことはできません、理由を聞かないでください:)
    追加された 著者 Nettogrof,

    5 答え

    Don't use jQuery, but simply move the closing tag at the right side of the tag:

  • sometext
  • 
    
  • sometext
  • 
    

    HTMLを変更しない場合は、次のようにします。

    $('img').click(function(){
        location.href = $(this).prev().attr("href");
    });
    

    コードレビュー

    • $(img) - img is not defined. Did you mean: $('img')? (added quotes, using selector img)
    • var link = $(this).prev; - prev is nto a property, but a method. It has to be invoked: var link = $(this).prev()
    • $(link).trigger('click'). Since link is a jQuery object already, it's unnecessary to wrap the object in another jQuery object. Use: link.trigger('click');
    • Flawed logic: .trigger('click') will not cause the page to be followed, because it doesn't trigger the default browser behaviour (following the link), but invokes the click event of the element. Which is not defined.
    4
    追加された
    @ Mr.Sam私の答えでは2番目のコードブロックです。リンクをクリックするデフォルトの動作は、(たとえば) location.href = "http:// newurl";
    追加された 著者 Rob W,
    @ Mr.Samリンクをトリガーする==ページをリダイレクトする。リンクにブックマークセット( javscript:.. )またはハッシュ( #notleaving )が含まれていても、ページはリダイレクトされず、あなたがリンクをたどっているなら。
    追加された 著者 Rob W,
    はい、あなたの権利は大丈夫ですが、画像をクリックするとリンク上のクリックをどのようにシミュレートできますか?
    追加された 著者 Mr. Sam,
    ありがとう、しかし、私はページをリダイレクトするだけでなく、リンクをトリガーする何かを探していた...しかし、とにかく感謝
    追加された 著者 Mr. Sam,

    あなたはおそらく次のようなもので逃げることができます

    $(img).click(function()
    {   
          var link = $(this).prev();   
          window.location.href = link.attr('href'); 
    });
    
    0
    追加された
    $('img').live('click', function() {
        $(this).closest('a').click();
    });
    
    0
    追加された
    あなたの質問に答えるなら、あなたは答えを受け入れるべきです:)
    追加された 著者 jbabey,
    私はこれがまさに私が探していたものだと伝えなければなりません、お元気です...ありがとうございました。
    追加された 著者 Mr. Sam,

    アンカーリンクと画像の両方にcssクラスを設定し、クラス名セレクタを使用してclickイベントをフックすることができます

    $( "。myclass")。click(function(){ //物事をする })

    0
    追加された
    私はあなたのことを何かに思っているので、もう少し具体的にしてください。
    追加された 著者 Mr. Sam,

    実際、それはうまくいくように見えます。 prevは関数であることに注意してください。

    あるいは、あなたは次のようなことをすることができます

    window.location = link.attr('href');
    
    0
    追加された