1

ギャラリーで、特定のサムネイルがライトボックスを介して元の画像を拡大するのをブロックしたいと思います。画像にはIDがなく、クラスのみが含まれています。すべてのリンクは、データベース内のテーブルから読み取られます。

$(document).ready(function(){
            if($('.product-image').attr('target', 'blockedpath')) {
                $('.product-image').click(function(e) {
                    e.preventDefault();
                    return false;
                });
            }
        }); 


<li class="product">
            <div class="productInfo">
                <h3>@i.ToString()</h3>
                <a href="@Href("~/Images/2013/" + i.ToString() + ".jpg")" rel="lightbox" class="link">
                    <img class="product-image" src="@Href("~/Images/2013/Thumbnails/" + i.ToString() + ".jpg")" alt="foto" />
                </a>
            </div>
        </li>

これを使用すると、すべてのサムネイルがブロックされます。ブロックされた画像だけを防ぎ、サムネイルのブロックを回避するにはどうすればよいですか。配列でブロックする必要があるすべての画像を保存し、その配列をループしてそれらのサムネイルをブロックすることは可能でしょうか?

4

2 に答える 2

5

まず、で画像が存在するかどうかを確認してから、すべてのtarget = blockedpath画像をブロックします。

次のようなものを使用できます。

$(document).ready(function(){
    // Select elements with the product-images class, that also 
    // have a target attribute with a value equal to 'blockedpath'
    // Bind a click event to the matched elements
    $('.product-image[target="blockedpath"]').click(function(event) {
        event.preventDefault();
        return false;
    });
}); 
于 2013-03-07T09:57:05.997 に答える
1
$('[target=blockedpath]').click(function( e ){
  e.preventDeault();
});

またはその逆:

$('.product-image').not('[target=blockedpath]').click(function(){
  alert('hi!');
});

http://api.jquery.com/event.preventDefault/

于 2013-03-07T09:58:16.663 に答える