0

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

$('#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();
});
4

3 回答 3

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);
});
于 2012-12-13T23:01:12.077 回答
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]);
});
于 2012-12-13T23:03:16.990 回答
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');
});
于 2012-12-13T23:06:03.080 回答