-3

plupload スクリプトを使用して複数の画像をアップロードするオプションを作成した Web サイトを作成しています。これにより、画像をクリックして複数の画像をアップロードするときにポップアップをトリガーできます。

このスクリプトでは、次のコードで始まる関数を持つ JS ファイルを追加する必要があります。

$(document).ready(function(){
var baseurl = $('#baseurl').val();
var i = 0;
$('.uploadFiles_one').click(function(){

   $('#uploadBox_one').dialog('open');
    return false
})
....
..some more js code..
....
})

この JS ファイルを変更して、PHP ループ経由で生成した複数の DOM 要素に同じ JS ファイルを使用できるようにしました。これは、以下のコードを含む新しいスクリプトです。

$( document ).on( "click", ".uploadFiles_loop", function(){
var baseurl = $('#baseurl').val();
var i = 0;
var my_id = $(this).attr('id');
var cnt = my_id.replace("anchor_", "");

$('.uploadFiles_loop').click(function(){

   $('#uploadBox_'+cnt).dialog('open');
    return false;
});
....
..some more js code..
....
})

フロントエンドには、ユーザーが画像をクリックしてポップアップを開くと、1 つの画像が表示されます。しかし、スクリプトを変更したら、画像を 2 回クリックしてポップアップを表示する必要があります。しかしその後、残りの画像アップローダーのアイコンはすべてワンクリックで開きました。

だから私の質問は、なぜ「画像のアップロード」を最初に2回クリックしなければならないのかということです(つまり、ページが読み込まれたときです)。

4

2 に答える 2

4

この余分なクリック ハンドラを削除してみてください$('.uploadFiles_loop').click(function(){...});

残すだけ:

$( document ).on( "click", ".uploadFiles_loop", function(){
    var baseurl = $('#baseurl').val();
    var i = 0;
    var my_id = $(this).attr('id');
    var cnt = my_id.replace("anchor_", "");
    $('#uploadBox_'+cnt).dialog('open');
    // Recheck were you want this return false;
    return false; 
....
..some more js code..
....
})

あなたのコードには、クリック時にクリックリスナーを追加する関数を実行するリスナーがありました。したがって、2 回目のクリックだけでコードが実行されます$('#uploadBox_'+cnt).dialog('open'); return false;。それを削除すると、最初のクリックで実行されます。

Ps - あなたのコードには がありreturn false;、その後にさらにコードがある場合は機能しません。だから私はそれをコメントしました、あなたはあなたが持っている残りのコードの後に​​それを望むかもしれません.

于 2013-08-06T12:34:21.303 に答える