2010-11-02 48 views
0

即时用户没有js,我试图让我的应用程序工作,我注意到我的灯箱不能在旧的浏览器上使用ajax善良,并试图修复它但不知道如何解决这个问题。jquery修改href的扩展onclick

我有一个链接一个类

<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 
    }); 
}); 

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

回答

2

您可以使用函数.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 
});