我无法在像这样的元素上调用fancybox:
$(this).parent().parent().parent().find('.comments').fancybox();
这不可能吗?是因为它是一个类而不是一个id?
我有几行项目,因此无法为所有项目设置ID。
有什么建议吗?这是整个JS代码(show()在这里工作,但fancybox()失败):
$(".action").click(function(e) {
e.preventDefault();
$(this).parent().parent().parent().find('.comments').show();
return false;
});
答案 0 :(得分:3)
你说的是错误的方式;尝试以下方法:
$('.action').click(function(e){
e.preventDefault();
target = $(this).closest('.comments').html();
$.fancybox({
content: target
// More Options
});
return false;
});
我希望这有帮助!
答案 1 :(得分:1)
在元素上调用.fancybox()
只会初始化fancybox。实现它的最佳方式取决于您没有发布的HTML。
但无论如何,这个解决方案应该有效:
$(".action").click(function(e) {
e.preventDefault();
var a = document.createElement('a');
var jqA = $(a);
jqA.fancybox({
content: $(this).parent().parent().parent().find('.comments').html()
// other options go here
});
jqA.click();
return false;
});
答案 2 :(得分:0)
只需使用
$(this).closest('.comments').fancybox();
外部点击功能。