将功能缩短为一个

时间:2012-12-13 22:56:21

标签: jquery

我有一个带有三个按钮的块,每个按钮加载不同的内容。 如何将这三个几乎相同的函数缩短为一个函数?

$('#mega_online').click(function() {

        $("#contentjq_more").empty().html('<center><img src="http://site.com/image.gif" /></center>');
        $("#contentjq").load("http://site.com/online.php?more=" + $morenum + "&movies=1");
        $("#contentjq_more").empty().html('');
    $morenum = $morenum+20;
        $("#contentjq").show();

});

$('#mega_files').click(function() {
    $morenum = 0;
        $("#contentjq_more").empty().html('<center><img src="http://site.com/image.gif" /></center>');
        $("#contentjq").load("http://site.com/files.php?more=" + $morenum + "&movies=1");
        $("#contentjq_more").empty().html('');
    $morenum = $morenum+20;
        $("#contentjq").show();
});

$('#mega_music').click(function() {
    $morenum = 0;
        $("#contentjq_more").empty().html('<center><img src="http://site.com/image.gif" /></center>');
        $("#contentjq").load("http://site.com/music.php?more=" + $morenum + "&movies=1");
        $("#contentjq_more").empty().html('');
    $morenum = $morenum+20;
        $("#contentjq").show();
});

3 个答案:

答案 0 :(得分:2)

我认为它们几乎完全相同,你可以简单地将它放在一个函数中,并找到页面名称为pageName = this.id.split('_')[1]

function myFunc() {
        var pageName = this.id.split('_')[1];
        $("#contentjq_more").empty().html('<center><img src="http://site.com/image.gif" /></center>');
        $("#contentjq").load("http://site.com/" + pageName + "?more=" + $morenum + "&movies=1");
        $("#contentjq_more").empty().html('');
    $morenum = $morenum+20;
        $("#contentjq").show();

}

然后你可以,

$('#mega_online, #mega_files, #mega_music').click(function () {
    myFunc.call(this);
});

答案 1 :(得分:1)

你可以:

function DoClick(page)
{
    $("#contentjq_more").empty().html('<center><img src="http://site.com/image.gif" /></center>');
    $("#contentjq").load("http://site.com/" + page + ".php?more=" + $morenum + "&movies=1");
    $("#contentjq_more").empty().html('');
    $morenum = $morenum+20;
    $("#contentjq").show();
}

$('#mega_online, #mega_online, #mega_music').click(function() {
    DoClick($(this).attr('id').split('_')[1]);
});

答案 2 :(得分:0)

你可以把它变成一个功能:

function doWork($type) {
        $morenum = 0;
        $("#contentjq_more").empty().html('<center><img src="http://site.com/image.gif" /></center>');
        $("#contentjq").load("http://site.com/" + $type + ".php?more=" + $morenum + "&movies=1");
        $("#contentjq_more").empty().html('');
        $morenum = $morenum+20;
        $("#contentjq").show();
         }

$('#mega_music').click(function() { 
doWork('music');
});

$('#mega_files').click(function() { 
doWork('files');
});

$('#mega_online').click(function() {
doWork('online');
});