JQuery всплывающее окно активируется при наведении на <a>необходимо изменить на <label> - PullRequest
2 голосов
/ 22 февраля 2011

У меня есть всплывающая система, которая показывает изображение при наведении курсора на ссылку.Вместо этого мне нужно активировать всплывающее окно, когда вы наводите курсор мыши на <label>

popup.js

/*
 * Url preview script 
 * powered by jQuery (http://www.jquery.com)
 * 
 * written by Alen Grakalic (http://cssglobe.com)
 * 
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 */

this.screenshotPreview = function(){    
    /* CONFIG */

        xOffset = 130;
        yOffset = 60;

        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result

    /* END CONFIG */
    $("a.screenshot").hover(function(e){
        this.t = this.title;
        this.title = "";    
        var c = (this.t != "") ? "<br/>" + this.t : "";
        $("body").append("<p id='screenshot'><img src='"+ this.rel +"' alt='image loading...' />"+ c +"</p>");                               
        $("#screenshot")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");                        
    },
    function(){
        this.title = this.t;    
        $("#screenshot").remove();
    }); 
    $("a.screenshot").mousemove(function(e){
        $("#screenshot")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });         
};


// starting the script on page load
$(document).ready(function(){
    screenshotPreview();
});

Вот HTML-код, который активирует всплывающее окно

HTML:

<a style="" class="screenshot" rel="images/0.jpg" title="blablabla">blablabla</a>

Я попытался:

<label for="0" class="screenshot" rel="images/0.jpg" title="blablabla">blablabla</label> и изменил на это в js $("label.screenshot").hover, но я получаю только загрузку изображения, но изображение отсутствует ..

1 Ответ

1 голос
/ 22 февраля 2011

Проблема, с которой вы столкнулись, заключается в том, что, поскольку this.rel обращается к свойству dom rel, которое является собственно тегом a, но не является свойством label.

Изменитьваш код на $(this).attr('rel'), поэтому он получит атрибут .

$("body").append("<p id='screenshot'><img src='"+ $(this).attr('rel') ...
...