2

これが私の質問です。私は単純なモーダルプロジェクトに取り組んでいます。コードからわかるように、ユーザーがデモ リンクまたはボタンをクリックすると、モーダル画面が呼び出されます。

ただし、クリックする代わりに、20秒後など、特定の時間後にそのモーダル画面を自動的に呼び出したいと思います。setTimeoutでは、その JavaScript コードで実際に適用できるのでしょうか?

HTML

<div id='content'>
<div id='basic-modal'>

<input type='button' name='basic' value='DEMO' class='basic'/> 
<a href='#' class='basic'>DEMO</a>

</div>

<!-- modal content -->
<div id="basic-modal-content">
<a href='asdasdasd'><img src="https:/asdasd.jpg" alt="asdasd"></a>

</div>
<div style='display:none'>

</div>
</div>
</div>

JS コード:

jQuery(function ($) {
    // Load dialog on page load
    //$('#basic-modal-content').modal();

    // Load dialog on click
    $('#basic-modal .basic').click(function (e) {
        $('#basic-modal-content').modal();

        return false;
    });
});
4

3 に答える 3

1

これでうまくいくはずです:

$(function(){ // Make sure jQuery is ready before delaying the modal function
    window.setTimeout(function(){
        $('#basic-modal-content').modal();
    }, (20 * 1000)); // Executes function in 20 seconds
});
于 2012-11-16T14:57:18.287 に答える
0

あなたはまだクリックイベントを持っていたいですか?したがって、20秒後、または誰かがクリックしたときに開く必要があります。いずれにせよ、タイムアウトをキャンセルする必要があります。

これがJSコードです。

var timeout;
var openModal = function() {
  $('#basic-modal-content').modal();
  clearTimeout(timeout);
};

var delay = 20000; //20 seconds
timeout = setTimeout(function() {
  openModal();
},dealy);

$('#basic-modal .basic').click(function(e) {
  openModal();
  return false;
});
于 2012-11-16T14:59:07.830 に答える
-1

多分これを試してみませんか?

$(document).ready(function() {
    $('#basic-modal-content').delay(20000).modal();
});
于 2012-11-16T14:58:22.947 に答える