我正在制作一个可点击的 DIV,如下所示:
jQuery(".post").click(function(){
window.location=jQuery(this).find(".post-title a").attr("href");
return false;
});
但我也想为其添加 rel 属性,以便链接可以在灯箱中打开。我尝试添加.attr("rel=prettyphoto")
,但似乎不起作用。
我正在制作一个可点击的 DIV,如下所示:
jQuery(".post").click(function(){
window.location=jQuery(this).find(".post-title a").attr("href");
return false;
});
但我也想为其添加 rel 属性,以便链接可以在灯箱中打开。我尝试添加.attr("rel=prettyphoto")
,但似乎不起作用。
它应该是:
$("whatever").attr("rel", "prettyphoto");
正如文档所指出的:
attr( name ) is the getter
attr( name, value ) is the setter
您应该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;
});
});
如果我是你,我会把它分成几个步骤,你实际上会在这个过程中回答你自己的问题。
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] )
方法有两个参数:如果您在函数中编写第二个参数,它将设置一个值。