2

我正在制作一个可点击的 DIV,如下所示:

jQuery(".post").click(function(){
    window.location=jQuery(this).find(".post-title a").attr("href");
    return false;
});

但我也想为其添加 rel 属性,以便链接可以在灯箱中打开。我尝试添加.attr("rel=prettyphoto"),但似乎不起作用。

4

3 回答 3

1

它应该是:

$("whatever").attr("rel", "prettyphoto");

正如文档所指出的:

attr( name ) is the getter
attr( name, value ) is the setter
于 2012-09-06T21:39:33.293 回答
1

您应该rel在页面加载时添加属性,而不是在点击时添加属性,并确保在初始化灯箱脚本之前执行此操作。在单击时设置属性没有意义,因为无论如何都会重新加载页面,并且该属性会消失。

所以:

// Inside this block we're sure the DOM is loaded,
// so we can init our stuff
$(document).ready(function() {

    // Add rel to post title links
    $('.post .post-title a').attr('rel', 'lightbox');

    // Now init your lightbox script
    // (your init code here)

    // Now set the click handler (does not have to be last)
    $(".post").click(function(){
        window.location=$(this).find(".post-title a").attr("href");
        return false;
    });

});
于 2012-09-06T21:40:33.930 回答
0

如果我是你,我会把它分成几个步骤,你实际上会在这个过程中回答你自己的问题。

jQuery(".post").click(function(){

    // store the link in var
    var link = jQuery(this).find(".post-title a");

    // set the rel
    link.attr('rel','prettyphoto');

    // get the href
    var location = link.attr("href");

    window.location=location;
    return false;
});

另外,请记住该.attr( attrName [, attrVal] )方法有两个参数:如果您在函数中编写第二个参数,它将设置一个值。

于 2012-09-06T21:44:54.670 回答