-1

「データ」でjsonを取得し、forループに渡しています。購入ボタンをクリックすると、アプリ機能に移動します。成功したら、購入ボタンを非表示にして、ダウンロード ラベルを表示する必要があります。

私の問題は、最初の購入ボタンをクリックすると、両方のボタンのダウンロード リンクが表示されることです。理想的には、最初の購入ボタンをワンクリックして、購入ボタンを非表示にし、ダウンロード ラベルを表示する必要があります。同様に、2 番目の購入ボタンを 1 回クリックすると、購入ボタンが非表示になり、ダウンロード ラベルが表示されます。

一度に 1 つずつ非表示にできるように、各ボタンの特定の ID を取得するにはどうすればよいですか?

私を助けてください

function (data)
    {   
        var Class ='';
        for (var i=0; i <data.length;i++)
        { 
            Class += '<div name="buy\''+data[i].id+'\'" class="btn btn-primary btn-small" onclick="buy(\''+data[i].identifier+'\',\''+data[i].id+'\',\''+data[i].url +'\'); return false;" href=""></div><div class="download\''+data[i].id+'\'" id="download">D<span style="font-size:15px"></span></div>';
        }
        return Class;
    }


App = function(identifier, app_id, url) {
    $.ajaxSetup({
            data : {
                csrf_test_name : $.cookie('csrf_cookie_name')
            }
        });
        var jqxhr = $.post(SITE_URL + 'admin/appstore/purchaseApp', {
            identifier : identifier,
            ap_id : ap_id
        }).done(function(data1) {
            obj = JSON.parse(data1);
            bootbox.alert(obj.status, obj.label);
            $("#download").html('<a href='+download_url+app_id+'>Download!</a>');




        });
    };

それは for loop am using.. am pass '; です。購入IDを非表示にするにはどうすればよいですか?$("#buys"+"'"+data[i].id+"'").hide(); これは正しい方法ですか?それは私にエラーを与える

4

1 に答える 1

0

クラスで生成された実際のマークアップを見ると、購入ボタンに ID がまったくないことがわかります。おそらく何かのような

Class += '<div id="buy-button-'+data[i].id+'" name="...

これで、各ボタンに一意の ID が割り当てられました。問題の次の部分は、Ajax 呼び出しが成功した後にどのボタンを削除するかを知ることです。サーバーから返された data1 にそれを含める必要があります。引数のために、サーバーが data1 オブジェクトの値を として返すとしましょうapp_id。その後、あなたがする必要があるのは

jQuery('#buy-button-'+data1.app_id).hide();

ボタンの名前属性で一重引用符を使用している方法にもあまり熱心ではありませんが、ここでは関係ないと思います。

于 2013-05-10T01:55:24.230 に答える