0

ボタンが 3 つあるブロックがあり、ボタンごとに異なるコンテンツが読み込まれます。これら 3 つのほぼ同一の関数を 1 つの関数に短縮するにはどうすればよいですか?

$('#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 に答える