2010-11-02 49 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 
});