【问题标题】:jquery modify href extension onclickjquery修改href扩展onclick
【发布时间】:2010-11-02 14:11:47
【问题描述】:

即使用户没有 js,我也在努力让我的应用程序正常运行,我注意到我的灯箱在旧浏览器上无法使用 ajax 优势,并开始尝试修复它,但不确定如何解决这个问题。

我有一个班级的链接

<a href="/blah/1234", class="modal">Blah</a>

但我需要告诉灯箱使用 href + .js 扩展名,如果它有效的话。这样,如果用户没有 js 或者由于任何原因中断,它会将他们发送到后备页面并正常运行。

    $('.modal').lightbox({
            'width'       : 465,
            'height'      : 375,
            'autoresize'  : false,
            'modal'       : true
    });

灯箱没有 href 属性,我可以找到用它自己的参数来更改它,所以我试着提前做,但有点太乱了。

这很糟糕,但在他们点击一次后会中断,因为它每次都会添加 .js。

$('.modal').bind('click', function() {
    $('.modal').attr("href", $('.modal').attr("href") + '.js');
    $('.modal').lightbox({
            'width'       : 465,
            'height'      : 375,
            'autoresize'  : false,
            'modal'       : true
    });
});

如何在调用灯箱之前更简单地更改扩展程序?

【问题讨论】:

    标签: javascript jquery lightbox modal-dialog


    【解决方案1】:

    您可以使用带有.attr() 的函数来检查它是否已经.js 结尾,如下所示:

    $('.modal').attr("href", function(i, href) {
      return href + (href.slice(-3) == '.js' ? '' : '.js');
    });
    

    或者,对ready 上的所有链接执行此操作,如下所示:

    $('.modal').attr('href', function(i, href) {
      return href + '.js';
    }).lightbox({
      'width'       : 465,
      'height'      : 375,
      'autoresize'  : false,
      'modal'       : true
    });
    

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多