如果用户在订阅输入中写入,我想在我的网站上禁用弹出窗口。弹出窗口已经设置好了。这是我的代码:
setTimeout(function() {
$(document).ready(function() {
$("#enquirypopup").modal();
})
}, 10000);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<input type="text" class="required_email" style="color: #ffffff;" name="email" id="email" placeholder="EMAIL TO RECEIVE LIFE-TIME PREMIUM ACCESS">
</div>
<div class="row">
<button class="btn btn-info btn-lg button" type="submit" id="butt" data-toggle="modal" data-target="#enquirypopup">SUBSCRIBE</button>
</div>
&#13;
我该如何管理?如果用户正在打字,可能会打破计时器?
谢谢!
答案 0 :(得分:1)
首先,在# Function to make the grouped pattern
groupPat <- function(pat0, ng)
{
# pat0: original list of patterns
# ng: number of original patterns in one group
# pat1: new, grouped pattern
# Length of original pattern
np0 <- length(pat0)
# Length of pattern to make
np1 <- floor(np0/ng)
if (np1 > 0){
# Allocate memory
pat1 <- vector(mode = "list", length = np1)
# Make new pattern
for (i in 1:np1-1){
pat1[i] <- paste0("\\b", pat0[(i*ng+1):((i+1)*ng)], "\\b", collapse = "|")
}
pat1[np1] <- paste0("\\b", pat0[(np1*ng+1):np0], "\\b", collapse = "|")
} else {
pat1 <- paste0("\\b", pat0, "\\b", collapse = "|")
}
# Output
pat1
}
# The actual replacement loop:
pat <- groupPat(lastname, 100)
for (i in 1:length(pat)){
x <- gsub(x, pattern = pat[i], replacement = "LASTNAME")
}
的回调中调用$(document).ready
是没有意义的。特别是如果定时器设置得这么长时间 - 到10秒,几乎总能保证DOM准备就绪。
据我了解,如果用户已输入电子邮件,您希望中止计时器。要做到这一点,你需要做的就是使用setTimeout
函数来停止先前设置的计时器。
clearTimeout
$(function(){ // This is a shortcut for $(document).ready()
var showModal = function() {
// $('#enquirypopup').modal();
alert('I am a fake modal. Please, do as I tell and fill the e-mail box.');
};
var showModalTimer = setTimeout(showModal, 5000); // Show modal after 5 seconds
$('#email').on('keypress', function() { // Cancel the modal if user already typed something
clearTimeout(showModalTimer);
});
});
我不建议在向用户显示弹出窗口后自动关闭弹出窗口,因为它会让人感到困惑。如果您已经展示了某些内容,请让用户自行关闭它。
答案 1 :(得分:0)
因此,最简单的方法可能就是记录上次按键输入的时间。这是一个样本:
ssh -i "somekey.pem" username@hostname 'bash -i -c "~/zookeeper-3.4.6/bin/zkServer.sh start"'
然后在你的模态弹出部分:
var lastTypedTime = new Date().getTime();
myInput.onkeydown = function() {
lastTypedTime = new Date().getTime();
}
如果您想知道,var timeToAvoidModal = 5000;
setTimeout(function() {
if (new Date().getTime() - lastTypedTime > timeToAvoidModal) {
$('#enquiryPopup').modal();
}
}, 10000);
会创建一个new Date()
对象,并且在Date
对象上调用getTime()
会提供Unix时间戳或者数量自Unix时代以来经过的毫秒数,即1970年1月1日00:00:00。
答案 2 :(得分:-1)
在您的输入上使用add_filter( 'gform_input_mask_script', 'set_mask_script', 10, 4 );
function set_mask_script( $script, $form_id, $field_id, $mask ) {
$script = "jQuery('#input_{$form_id}_{$field_id}').mask('" . esc_js( $mask ) . "',{placeholder:' '}).bind('keypress', function(e){if(e.which == 13){jQuery(this).blur();} } );";
return $script;
}
事件:
focus
每次焦点位于输入字段时,都会禁用弹出窗口。您可能希望在用户键入后禁用弹出窗口。这可以通过
来实现$("#email").on("focus", function () {
$("#yourpopup").css("display", "none");
});