-1

次の 3 つのコード ブロックがあり、同じコードを何度も書き続ける必要がないように、どうにかしてこれらを組み合わせることができないかと考えていました。おかしなことを説明していたらすみません。できる限りエレガント/効率的に書くことを学びたいだけです。

HTML

<a href="#" id="download-1">Tweet to Download</a></li>
<a href="#" class="download1">Download</a></li>

<a href="#" id="download-2">Tweet to Download</a></li>
<a href="#" class="download2">Download</a></li>

<a href="#" id="download-3">Tweet to Download</a></li>
<a href="#" class="download3">Download</a></li>

1

  // Download 1
  $('#download-1').tweetAction({
    url: 'download1',
    text: 'Download 1',
    via: 'twittersn'
  },function(){
    // When the user closes the pop-up window:

    $('a.download1')
      .addClass('active')
      .attr('href','download1.psd');
  });

2

  // Download 2
  $('#download2').tweetAction({
    url: 'download2',
    text: 'Download 2',
    via: 'twittersn'
  },function(){
    // When the user closes the pop-up window:

    $('a.download2')
      .addClass('active')
      .attr('href','download2.psd');
  });

3

  // Download 3
  $('#download3').tweetAction({
    url: 'download3',
    text: 'Download 3',
    via: 'twittersn'
  },function(){
    // When the user closes the pop-up window:

    $('a.download3')
      .addClass('active')
      .attr('href','download3.psd');
  });
4

1 に答える 1

2

関数でラップするだけで、次のようになります。

function tweetFunc(id) {
    $('#download-' + id).tweetAction(
        {
            url: 'download' + id,
            text: 'Download ' + id,
            via: 'twittersn'
        },
        function() {
            // When the user closes the pop-up window:
            $('a.download' + id)
                .addClass('active')
                .attr('href','download' + id + '.psd')
            ;
        }
    );
}

for(i = 1; i <= 3; i++) {
    tweetFunc(i);
}

これを機能させるには、ダウンロード ID 属性の形式を同期する必要がありdownload-XますdownloadX

于 2013-04-15T20:46:25.183 に答える