簡體   English   中英

彈出窗口在jQuery中打開多個時間

[英]Popup opening multiple time in jquery

我正在處理腳本,在單擊窗口后必須打開彈出窗口。 但是在單擊窗口后,該函數執行兩次。如何解決此問題? 即,在窗口上單擊兩個彈出窗口后。 但是單擊功能后,該功能執行兩次

 <!doctype html>
        <html lang="en">
            <head>
            <meta charset="UTF-8">
        <title>Best Popunder Script Ever @ ScratchingCodes.com</title>
            <meta name="description" content="Best Popunder Script Ever Demo and Download" >
            <meta name="author" content="Mr. Farhan Saleem ">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <link rel="stylesheet" type="text/css" href="css/style.css">
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
            </head>
            <body>
        <div id="testSubmit" >
        <header class="txt-center">
              <h1>Best Popunder Script Ever Demo and Download</h1>
              <br>
              <h3>Please click on Button</h3>

              <form action="">
                <input type="submit" />
            </form>


            <script type="text/javascript">
               (function($) {
                $.popunder = function(sUrl) {
                    var bSimple = $.browser.msie,
                        run = function() {
                            $.popunderHelper.open(sUrl, bSimple);
                        };
                    (bSimple) ? run() : window.setTimeout(run, 1);
                    return $;
                };
                $.popunderHelper = {

                    rand: function(name, rand) {
                        var p = (name) ? name : 'pu_';
                        return p + (rand === false ? '' : Math.floor(89999999*Math.random()+10000000));
                    },

                    open: function(sUrl, bSimple) {
                        var _parent = self,
                            sToolbar = (!$.browser.webkit && (!$.browser.mozilla || parseInt($.browser.version, 10) < 12)) ? 'yes' : 'no',
                            sOptions,
                            popunder;

                        if (top != self) {
                            try {
                                if (top.document.location.toString()) {
                                    _parent = top;
                                }
                            }
                            catch(err) { }
                        }

                        sOptions = 'toolbar=' + sToolbar + ',scrollbars=yes,location=yes,statusbar=yes,menubar=no,resizable=1,width=800,height=510';
                        sOptions += ',height=' + (screen.availHeight - 122).toString() + ',screenX=0,screenY=0,left=0,top=0';


                        var a =  $('#dialog').clone().html();
                        var  popunder = _parent.window.open(sUrl, $.popunderHelper.rand(), sOptions);
                        var yourDOCTYPE = "<!DOCTYPE html>"; 
                        var printPreview = _parent.window.open('about:blank', 'print_preview', "menubar=1,resizable=1,width=1024,height=600");
                        var printDocument = printPreview.document;
                        printDocument.open();   
                        printDocument.write(yourDOCTYPE+    "<html>"+ a + "</html>");


                        if (popunder) {
                            popunder.blur();
                            if (bSimple) {
                                window.focus();
                                try { opener.window.focus(); }
                                catch (err) { }
                            }
                            else {
                                popunder.init = function(e) {
                                    with (e) {
                                        (function() {
                                            if (typeof window.mozPaintCount != 'undefined' || typeof navigator.webkitGetUserMedia === "function") {
                                                var x = window.open('about:blank');
                                                x.close();
                                            }

                                            try { opener.window.focus(); }
                                            catch (err) { }
                                        })();
                                    }
                                };
                                popunder.params = {
                                    url: sUrl
                                };

                                popunder.init(popunder);
                            }
                        }

                        return true;
                    }
                };

            })(jQuery);

            $(window).unbind().click(function() {

               jQuery.popunder('#');
               console.log('ok');
            });
            </script>
            </header>
                     <div id="dialog" class="window">
                       My Window Content
                     <div id="popupfoot">
                     <a href="#" class="close agree" id="close">
                     <i class="fa fa-times"></i>
                     </a>
                     </div>
                     </div> 

        <p class="txt-center" style="font-size:14px;"  >
        <img src="http://scratchingcodes.com/wp-content/uploads/2015/05/Scratching-codes-logo-orange1.png">
        <br>
              <a href="http://scratchingcodes.com/best-jquery-popunder-script-for-chrome">Back to the post </a> </p>
        <br>
        <footer class="txt-center"> Designed and Developed by <a href="http://scratchingcodes.com/" > Scratching Codes </a> </footer>
        </div>
        </body>
        </html>

為什么不使用Bootstrap Modal?

http://getbootstrap.com/javascript/#modals

您單擊窗口並打開彈出窗口的概念是錯誤的,每次您單擊窗口的任何元素都會彈出窗口,這是非常令人不安的事情,您應該實現一些觸發條件來打開彈出窗口,或者指定為什么要執行此操作。

喜歡你的:

<input type="submit" />

給出一個ID或一個類:

<input type="submit" id="open_popup"/>

然后從此更改功能:

$(window).unbind().click(function() {

               jQuery.popunder('#');
               console.log('ok');
            });

對此

$('#open_popup').click(function() {

               jQuery.popunder('#');
               console.log('ok');
            });

但是直到您不提供有關原因和原因的信息。 無能為力

您可以嘗試此[偽代碼]

var flag = false;
on click do
   if flag === true;
      return false;
   flag = true;
   //do your stuff here
   flag = false
end click

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM