我有一个加载来自不同页面的内容的函数。我希望能够在不同的元素上使用相同的函数,并通过“changable”变量加载来自不同url的内容。
我设置了我的变量:
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');
然而,事实并非如此,我非常困难。
对此的任何帮助都会很棒!
谢谢!
答案 0 :(得分:1)
如果网址取决于元素的类,则每次调用函数时都必须检查类,而不是仅仅一次。
此外,$('。info')正在定位所有 .info元素,如果您只想定位横幅的子项,则执行$(this).find('。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);
});
}