2015-02-08 53 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); 
    }); 
}