2013-02-12 1 views
0

jquery 팝업 플러그인이있어서 양식을 제출하면 자동으로 닫힙니다. 하지만 팝업 창에 시간 제한을 설정해야합니다.내 jquery 팝업 창에서 지속 시간을 연장하십시오.

HTML :

<div class='popbox'> 
<a class='open' href='#'> 
    <img src='plus.png' style='width:14px;position:relative;'> Click Here! 
</a> 

<div class='collapse'> 
    <div class='box'> 
    <div class='arrow'></div> 
    <div class='arrow-border'></div> 

    <form action="" method="post" id="subForm"> 
     <div class="input"> 
     <input type="text" name="cm-name" id="name" placeholder="Name" /> 
     </div> 
     <div class="input"> 
     <input type="text" name="cm-nklki-nklki" id="nklki-nklki" placeholder="Email" /> 
     </div> 
     <div class="input"> 
     <textarea name="cm-f-tlhll" id="Message" placeholder="Comments"></textarea> 
     </div> 
     <input type="submit" value="Get In Touch" /> <a href="#" class="close">Cancel</a> 
     <input type="button" name="closebutton" id="closebutton" value="closebutton" > 
    </form> 

    </div> 
</div> 

JQuery와는 :

(function() { 
    $.fn.popbox = function (options) { 
    var settings = $.extend({ 
     selector: this.selector, 
     open: '.open', 
     box: '.box', 
     arrow: '.arrow', 
     arrow_border: '.arrow-border', 
     close: '.close' 
    }, options); 
    var methods = { 
     open: function (event) { 
     event.preventDefault(); 
     var pop = $(this); 
     var box = $(this).parent().find(settings['box']); 
     if (box.css('display') == 'block') { 
      methods.delay(1500).close(); 
     } else { 
      box.css({ 
      'display': 'block', 
      'top': 10, 
      'left': ((pop.parent().width()/2) - box.width()/2) 
      }); 
     } 
     }, 
     close: function() { 
     $(settings['box']).fadeOut("fast"); 
     } 
    }; 
    $(document).bind('keyup', function (event) { 
     if (event.keyCode == 27) { 
     methods.delay(1500).close(); 
     } 
    }); 
    return this.each(function() { 
     //$(this).css({'width': $(settings['box']).width()}); // Width needs to be set otherwise popbox will not move when window resized. 
     $(settings['open'], this).bind('click', methods.open); 
     $(settings['open'], this).parent().find(settings['close']).bind('click', function (event) { 
     event.preventDefault(); 
     methods.close(); 
     }); 
    }); 
    } 
}).call(this); 

답변

0

더 높은 값으로 delay(1500)을 높일 수 있습니다. 1500은 밀리 초 단위로 현재 팝업은 1.5 초 후에 닫힙니다.

+0

시간 제한은 버튼을 닫을 때 적용되지만 양식 제출에는 실패합니다. 예를 들어 전 제출 버튼을 누르면 바로 닫힙니다. 그러나 나는 가까운 시간을 늘릴 필요가있다. – RaJeSh

+0

'$ (설정 ['상자 ']) .fadeOut ("빠름");' 과 '$ (settings ['box ']) .fadeOut (1500);' –

0
close: function() { 
    window.setTimeout(function() { 
     $(settings['box']).fadeOut("fast"); 
    }, 1000); // 1 second 
} 
+0

내 문제가있어 – RaJeSh

+0

@Koenyn 코드를 게시하는 대신 솔루션을 설명하는 것이 더 좋습니다. – ryadavilli

+0

좋아, 그래서 기본적으로, 당신은 "닫기"를 클릭 한 후 작업을 "지연"해야합니까? 그래서 대신 close 함수 내부에 타임 아웃을 추가 할 것입니다. 클릭 한 후 1 초만 페이드 아웃을 시작합니다. http://www.w3schools.com/jsref/met_win_settimeout.asp – Koenyn

관련 문제