在Backbone.js中更改Colorbox maxWidth选项?

时间:2014-10-30 18:12:24

标签: javascript jquery backbone.js handlebars.js colorbox

我正在使用Handlebars.js作为HTML模板。像这样:

    <div class="row">
        {{#ifCond ImagePath '==' "/images/noneImage.jpg"}}
      <div class="col-md-8">
          {{else}}
          <div class="col-md-16">
        <div class="row">
            <div class="col-16-6">      

              <div class="product-image">
                <img src="//images/{{ImagePath}}" />
              </div>
            </div>
          {{/ifCond}}
...

这是我的Colorbox模板及其工作原理。如果产品没有图片,请获取col-md-8课程。 (如果有图像,请获取col-md-16) 我的Colorbox JS在这里:

 productDetail.bind('onLoaded', function () {
      productDetailLB = new lightbox({
        html: '<div class="productDetail"></div>',
        className: 'product-detail-lightbox',
        maxWidth: 870,
        height: 500, 
        onComplete: function () {
          productDetail.setElement('.productDetail');
          productDetail.render();
        }
      });
    }); 

但如果产品没有图片,我想要maxWidth: 500

我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:0)

使maxWidth成为测试是否有图像的函数。如果不是,则返回500,否则返回870。

 productDetailLB = new lightbox({
    html: '<div class="productDetail"></div>',
    className: 'product-detail-lightbox',
    maxWidth: function(){
        if ($('.product-image')){
            return 870;
        } else {
            return 500;
        }
    },
    height: 500, 
    onComplete: function () {
      productDetail.setElement('.productDetail');
      productDetail.render();
    }

编辑:由于我没有很多上下文,因此无法保证这将起作用。我所做的就是使用jquery测试是否存在带有“product-image”类的div元素。如果没有,你应该能够自己找出if语句。