Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以在类上调用fancybox吗?_Javascript_Jquery_Css_Fancybox - Fatal编程技术网

Javascript 可以在类上调用fancybox吗?

Javascript 可以在类上调用fancybox吗?,javascript,jquery,css,fancybox,Javascript,Jquery,Css,Fancybox,我无法在这样的元素上调用fancybox: $(this).parent().parent().parent().find('.comments').fancybox(); 这不可能吗?这是因为它是一个类而不是一个id吗? 我有几行项目,因此不可能为所有项目都设置ID 有什么建议吗?下面是整个JS代码(这里的show()可以工作,但是fancybox()失败): 对元素调用.fancybox(),只会初始化fancybox。实现它的最佳方式取决于您的HTML,您没有发布HTML 但无论如何,这

我无法在这样的元素上调用fancybox:

$(this).parent().parent().parent().find('.comments').fancybox();
这不可能吗?这是因为它是一个类而不是一个id吗?

我有几行项目,因此不可能为所有项目都设置ID

有什么建议吗?下面是整个JS代码(这里的show()可以工作,但是fancybox()失败):

对元素调用
.fancybox()
,只会初始化fancybox。实现它的最佳方式取决于您的HTML,您没有发布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;
});
对元素调用
.fancybox()
,只会初始化fancybox。实现它的最佳方式取决于您的HTML,您没有发布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;
});
只用

$(this).closest('.comments').fancybox();
外部单击功能。

只需使用

$(this).closest('.comments').fancybox();

外部单击功能。

您用错误的方式调用它;请尝试以下操作:

$('.action').click(function(e){
    e.preventDefault();
    target = $(this).closest('.comments').html();
    $.fancybox({
        content: target
        // More Options
    });
    return false;
});

我希望这有帮助

你说得不对;请尝试以下操作:

$('.action').click(function(e){
    e.preventDefault();
    target = $(this).closest('.comments').html();
    $.fancybox({
        content: target
        // More Options
    });
    return false;
});

我希望这有帮助

您是否已检查以确保您实际返回了一个元素?
$(this).parent().parent().parent().find('.comments')
是否返回您期望的实体?是的。我已经尝试了show()它,并且它工作了。我已经在问题中添加了JS代码,以供更多参考。您是否尝试过将元素设置为var并对其调用fancybox?var$target=$(this).closest('.comments')$target.fancybox();您是否已检查以确保您实际返回了一个元素?
$(this).parent().parent().parent().find('.comments')
是否返回您期望的实体?是的。我已经尝试了show()它,并且它工作了。我已经在问题中添加了JS代码,以供更多参考。您是否尝试过将元素设置为var并对其调用fancybox?var$target=$(this).closest('.comments')$target.fancybox();它肯定会显示模式,但它是空白的。我猜它是隐藏的,所以使用content:$(this)。最近('.comments').show()`它肯定会显示模式,但它是空白的。我猜它是隐藏的,所以使用content:$(this)。最近('.comments').show()`NP。我认为如果您在第3行末尾添加
.html()
,dSquared的解决方案可能会更好-我没有意识到您可以打开一个模式调用
$.fancybox()直接链接。我认为如果您在第3行末尾添加
.html()
,dSquared的解决方案可能会更好-我没有意识到您可以打开一个模式调用
$.fancybox()直接