0

JSファイルのさまざまなイベントに対応するリンクの順序付けられていないリストがあります。今使っています

$('#gst').click(function(){
    preset(gst);
});
$('#gsd').click(function(){
    preset(gsd);
});
$('#ts').click(function(){
    preset(ts);
});
$('#none').click(function(){
    preset(none);
});

これが私のプリセット機能です:

function preset(setter){
if(setter === gst){
    currentPreset = gTitle;
    $('#count').html(currentPreset);
}else if(setter === gsd){
currentPreset = gDesc;
}else if(setter === ts){
currentPreset = tLimit;
}else{
currentPreset = none;
$('#count').html(currentPreset);
}
}

そしてそれはひどいように見えます。私はこれを行うための「ドライ」な方法があることを知っています。しかし、私はそれを見つけていません。誰かがこれを行うための最良の方法を知っていますか?素晴らしいものになるだろう!

ありがとう

4

3 に答える 3

4
$("#gst, #gsd, #ts, #none").click(function(){
    preset(this.id);
});
于 2013-01-27T22:25:58.647 に答える
3
function handleClick() {
    preset(window[$(this).attr('id')]);
}

$('#gst, #gsd, #ts, #none').click(handleClick);
于 2013-01-27T22:26:15.500 に答える
1

プリセットに文字列をパラメータとして使用させ、次の行に沿って何かを実行します

$('.classGivenToAll').click(function() {
    preset($(this).attr("id"));
});

他の属性に切り替えたい場合に備えて、この方法でIDを取得します。

于 2013-01-27T22:26:08.280 に答える