2015-02-08 40 views
0

我有一個函數可以從不同的頁面加載內容。我希望能夠在不同的元素上使用相同的函數,並通過「可變」變量加載來自不同URL的內容。jQuery - 在幾個元素上運行函數並相應地更改變量

設置我的變量:

var $banner1 = '/url1', 
    $banner2 = '/url2', 
    $banner3 = '/url3', 
    $someUrl; 

我想通某種形式的IF語句將解決我的問題呢? 像這樣:

if ($('.banner-01').length > 0) { 
     var $someUrl = $banner1; 
    } 

    if ($('.banner-02').length > 0) { 
     var $someUrl = $banner2; 
    } 

    if ($('.banner-03').length > 0) { 
     var $someUrl = $banner3; 
    } 

然後我跑我的功能

$.fn.loadContent = function() { 
     $('.info').each(function()({ 
      $(this).load($someUrl); 
     }); 
    } 

    $('.banner-01').loadContent(); 
    $('.banner-02').loadContent(); 
    $('.banner-03').loadContent(); 

我的預期結果

$('.banner-01 .info').load('/url1'); 
$('.banner-02 .info').load('/url2'); 
$('.banner-03 .info').load('/url3'); 

然而,這是不是這樣,我居然被卡住。

任何幫助,這將是偉大的!

謝謝!

回答

1

如果URL依賴於元素的類,則每次調用該函數時都必須檢查該類,而不只是一次。

此外,$(「信息‘)被靶向所有 .INFO元素,如果你只想要定位的旗幟孩子然後做$(本).find(’發現」):

$.fn.loadContent = function() { 
    var whichUrl = ''; 
    if($(this).hasClass('banner-01')){ 
     whichUrl = $banner1; 
    }else if($(this).hasClass('banner-02')){ 
     whichUrl = $banner2; 
    }else if($(this).hasClass('banner-03')){ 
     whichUrl = $banner3; 
    } 
    $(this).find('.info').each(function()({ 
     $(this).load(whichUrl); 
    }); 
} 
相關問題