首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从函数返回值作为jQuery中参数的值

从函数返回值作为jQuery中参数的值
EN

Stack Overflow用户
提问于 2013-04-17 22:53:25
回答 3查看 102关注 0票数 1

参数content的值应该是一个获取内容的函数。我想我可以用到这样的东西:

代码语言:javascript
运行
复制
$(".fancy-detail-page").fancybox({
      'content'    : function(){
          var id = $(this).attr('id');
          id = id.replace("pd", "c");
          var content = $('#' + id + ' .product-details').html();
          return content;
      },
      'padding'    : 0,
      'openEffect'  : 'none',
      'closeEffect'  : 'none',
      'maxWidth'    : 960
 });

但是return似乎不起作用。如何正确地完成此操作?

EN

回答 3

Stack Overflow用户

发布于 2013-04-17 23:19:20

多亏了jqueryrocks和烘焙。这个解决方案对我很有效:

代码语言:javascript
运行
复制
  $(".fancy-detail-page").click(function(e){
    e.preventDefault();
    var id = $(this).attr('id');
    $.fancybox({
      'content'    : (function(){
        id = id.replace("pd", "c");
        var content = $('#' + id + ' .product-details').html();
        return content;
      })(),
      'padding'    : 0,
      'openEffect'  : 'none',
      'closeEffect'  : 'none',
      'maxWidth'    : 960
    });
   });
票数 1
EN

Stack Overflow用户

发布于 2013-04-18 05:31:12

在不使事情变得太复杂的情况下,您可以使用beforeLoad回调来获得相同的结果,而且它会更干净、更简单、更快,如下所示:

代码语言:javascript
运行
复制
$(".fancy-detail-page").fancybox({
    padding: 0,
    openEffect: 'none',
    closeEffect: 'none',
    maxWidth: 960,
    beforeLoad : function () {
        var id = $(this.element).attr("id").replace("pd", "c");
        this.content = $('#' + id + ' .product-details').html();
    }
});

这一行

代码语言:javascript
运行
复制
this.content = $('#' + id + ' .product-details').html();

可以归结为:

代码语言:javascript
运行
复制
this.content = $('#' + id + ' .product-details');

不需要.html()就能得到相同的结果……请参阅

票数 1
EN

Stack Overflow用户

发布于 2013-04-17 23:00:57

假设这是同一个插件。

每个API看起来'content‘必须是数据。

"content Forces (可以是任何html数据)“http://fancybox.net/api

所以你只需要在初始化fancybox之前调用函数(或者设置一个content变量);

代码语言:javascript
运行
复制
var id = $(this).attr('id');
id = id.replace("pd", "c");
var content = $('#' + id + ' .product-details').html();

$(".fancy-detail-page").fancybox({
      'content'    : content,
      'padding'    : 0,
      'openEffect'  : 'none',
      'closeEffect'  : 'none',
      'maxWidth'    : 960
 });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16063350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档