0

各ファイルの最大ダウンロード数が 5 のダウンロード ページがあります。すべてのダウンロードは、download.php?fileid にリンクしています。クリックすると、データベース内のダウンロード数から 1 が差し引かれます。ただし、訪問者がページを更新したときにのみ更新されます。

今、私はjQueryが私を助けてくれると思っていましたが、今これを持っています:

<span class="downloadsleft">5</span><span class="downloadLink">download file</span>

私のjquery:

<script type="text/javascript">     
                $('.downloadLink').click(function() {

                        var currentValue = $(".amount").text();
                        var newValue = +currentValue - 1;

                        $(".amount").text(newValue);

                        window.open("download.php?file={/literal}{$product.bestandsnaam_hash}{literal}");                   

                        if ((".amount").text == "1")
                        {
                            location.reload();
                        };
                });  

            </script>

ウィンドウのオープンは機能しますが、リロードは機能しませんか? 誰もこの問題を知っていますか?

4

2 に答える 2

1

説明

.amount良いクラス名ではありません! .downloadsleft代わりに使用してください!

.amountは存在しないため、変数 には初期値が設定さcurrentValueれていません。


解決

( JSFiddle )

コード.amount内のすべてを次のように置き換えます。JavaScript.downloadsleft

:ダウンロード数を数値と比較するparseInt()機能も追加しました。base10

JavaSript/jQuery

  $('.downloadLink').click(function() {
      var currentValue = $(".downloadsleft").text();
      var newValue = currentValue - 1;

      $(".downloadsleft").text(newValue);

      window.open("download.php?file={/literal}{$product.bestandsnaam_hash}{literal}");                

      if (parseInt(newValue,10) == 1)
      {
          location.reload();
      };
  }); 
于 2013-06-12T14:25:46.730 に答える