0

関数を3秒間遅らせるのに苦労しています..これは画像上にあります-

 function base64_tofield() {

            $('#formfield').val($.scriptcam.getFrameAsBase64());

             document.form.submit();
           };

私はもう試した:

setTimeout( function () { 
          base64_tofield(); 
           }, 3000);

無駄に。フォームは 3 秒の遅延なしで送信されます - 何かアイデアはありますか? フォームを「ブロック」する必要がありますか?

ありがとう!

画像コード:

<img id="btn1" onclick="base64_tofield()">
4

4 に答える 4

4

ライブデモ: アラートは 3 秒後にポップアップ表示されます。

これを試して:

<img id="btn1" onclick="new_fun()">

function new_fun()
{
    setTimeout( function () { 
          base64_tofield(); 
    }, 3000);
}

function base64_tofield() {
    $('#formfield').val($.scriptcam.getFrameAsBase64());
    document.form.submit();
};
于 2013-10-21T13:31:24.730 に答える
1

「フォームを「ブロック」する必要がありますか?」

ええ、そうです、それはアイデアのように聞こえます。現在、jquery を使用せずに関数base64_tofield()を直接定義しています。その理由は?

jQuery では、次のことができるようにするイベント パラメータが追加されます。event.preventDefault()

$("#btn1").click(function(event){
    // do i need to 'block' the form or what?
    event.preventDefault();
    setTimeout(base64_tofield, 3000);
});

画像がページにどのように追加されるかはわかりませんが、id の代わりに css クラスや.on()ここでも役立ちます。

于 2013-10-21T13:31:28.773 に答える