protectDefault () не работает для ссылки на изображение - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь создать лайтбокс для своего сайта, но у меня возникла проблема.Так как я не очень хорошо владею jQuery, я делаю много ошибок.Одним из них является то, что я не могу заставить функцию protectDefault () работать как с текстовыми, так и с графическими ссылками!Проверьте следующий код

HTML-код:

Text link: <a class='ultbox_simg' href='images/1.jpg'>Image 1</a>
Image link: <a href='images/1.jpg'><img src="images/1t.jpg" /></a> 

jQuery script:

$(document).ready(function ($){

    $(".ultbox_simg").click(function (obj){
        obj.preventDefault();
        var img_link=$(this).attr("href");

    });
});

Ответы [ 5 ]

3 голосов
/ 20 июля 2011

Вы можете добавить класс также к ссылке img:

Text link: <a class='ultbox_simg' href='images/1.jpg'>Image 1</a>
Image link: <a class='ultbox_simg' href='images/1.jpg'><img src="images/1t.jpg" /></a> 

$(".ultbox_simg").click(function (obj){
    obj.preventDefault();
    var img_link=$(this).attr("href");

});

или (еще лучше, я думаю), вы можете отслеживать ссылки с помощью этой ссылки:

$('a[href="images\\/1\\.jpg"]').click(function (obj){
    obj.preventDefault();
    var img_link=$(this).attr("href");

});
0 голосов
/ 20 июля 2011

С помощью $('.ultbox_simg') вы выбираете элементы класса ultbox_simg и привязываете к ним обработчик click.

Но ссылке на изображение не присвоен этот класс ..

так

<a class="ultbox_simg" href="images/1.jpg"><img src="images/1t.jpg" /></a> 
0 голосов
/ 20 июля 2011

вот что вам нужно изменить:

Image link: <a href='images/1.jpg'><img src="images/1t.jpg" /></a> 

до:

Image link: <a href='images/1.jpg'  class='ultbox_simg'><img src="images/1t.jpg" /></a>

теперь будет работать

0 голосов
/ 20 июля 2011

Вам необходимо добавить класс .ultbox_simg к вашей ссылке на изображение.

<a class='ultbox_simg' href='images/1.jpg'><img src="images/1t.jpg" /></a> 
0 голосов
/ 20 июля 2011

Вы также должны запретить действие по умолчанию для:

<a href='images/1.jpg'>

Поэтому добавьте для него класс, например, noClick, и добавьте в скрипт:

$(".noClick").click(function (obj){
        obj.preventDefault();
});
...