2017-09-08 15 views
1

divクラスにラップされた画像があります。これらの画像の 'alt'属性は異なります。altを例にした画像をクリックしてください。

「alt」が「Example」の画像をクリックすると、そのURLが「www.google.com」のウェブページに移動します。

alt属性を使用してクリックイベントにバインドしてこのロジックを実装する方法はありますか。

JQueryやJavascriptを使用することは可能ですか?

ここは私のコードですが、動作しません。このコードを修正するにはどうしたらいいですか?

あなたが行うことができます
$('img[alt="Example"]').on("click", "img", function (e) { 
     e.preventDefault(); 
     document.location = 'www.google.com'; 
    }); 
+2

可能な重複img alt属性を持つonclick](https://stackoverflow.com/questions/46122335/jquery-or-javascript-onclick-with-img-alt-attribute) –

+0

あなたは 'img's内のイベントのイベント委譲を使用しています'img [...]'。 'img [...]'の中には 'img'が存在しないので、存在しない要素にバインドされているので、イベントバインディングは無用です。 –

+0

...イベント委任を使用する場合は、[** Alive to Dieの回答**](https://stackoverflow.com/a/46124195/6647153)などの要素のコンテナにイベントをバインドする必要があります。ベロー: 'ドキュメント'またはそれに近い別のコンテナに設定してください。 –

答えて

2
$('img[alt="Example"]').click(function (e) { 
     document.location = 'http://www.google.com'; 
    }); 
+3

答えを説明していますか?私はOPがなぜこの方法が提案されているのか、現在の試行が期待通りに機能していない理由を知りたいと思うと確信しています。 – NewToJS

+0

@NewToJS:nope。 –

+3

ソースコードは良いかもしれませんが、そこから学び、将来の間違いを避けたい人にとってはあまり役に立ちません。 – NewToJS

3

: -

$('img[alt="Example"]').on("click", function (e) { 
    e.preventDefault(); 
    document.location = 'www.google.com'; 
}); 

例: -

$('img[alt="Example"]').on("click", function (e) { 
 
    e.preventDefault(); 
 
    document.location = 'www.google.com'; 
 
});
img{ 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img alt="Example" src="https://png.icons8.com/ios/50/007AFF/billie-holiday-filled"> 
 
<br><br> 
 
<img alt="MyExample" src="https://a.deviantart.net/avatars/c/r/crussong.png?15">

た場合、または動的に作成されたイメージ: -

$(document).on("click", 'img[alt="Example"]', function (e) { 
    e.preventDefault(); 
    document.location = 'www.google.com'; 
}); 

例: -

$(document).ready(function(){ 
 
    $('div').html('<img alt="Example" src="https://png.icons8.com/ios/50/007AFF/billie-holiday-filled"><br><br><img alt="MyExample" src="https://a.deviantart.net/avatars/c/r/crussong.png?15">'); 
 
}); 
 
$(document).on("click", 'img[alt="Example"]', function (e) { 
 
    e.preventDefault(); 
 
    document.location = 'www.google.com'; 
 
});
img{ 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div></div>

1

あなたは不必要なイベントの委任を持っている、あなたは、URLにhttps://を追加し、また、.on("img"を除去することによって、それを削除することができます:jQueryのまたはJavaScript [の

$('img[alt="Example"]').on("click", function (e) { 
 
    e.preventDefault(); 
 
    document.location = 'https://www.google.com'; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img alt="Example" src="http://placeskull.com/300/300">

関連する問題