我有一个注册表单 div,它应该在单击按钮时打开。它在页面加载时默认设置为 display: none
。在提交失败的表单时,我的 JS 文件中有这段代码(有效,我使用 display: inline-block
默认设置进行了测试):
$(document).ready(function(){
<?php
if(isset($_POST['signUp']) && count($errors)>0){
?>
$ ('#home-sign-up-box').show();
<?php
}elseif(isset($_POST['signUp']) && count($errors)==0){
?>
$('#home-sign-up-box').hide();
<?php
}else{
?>
$('#home-sign-up-box').show();
<?php
}
?>
});
我还有这段代码,它应该显示 div(在我添加上面的代码之前它有效):
// Log in and sign up buttons
$("#log-in-button").click(function() {
$("#home-log-in-box").show();
$("#home-log-in-box").animate({
"opacity":1
}, 115);
$(".body-darken").show();
$(".body-darken").animate({
"opacity":0.5
}, 115);
});
$(".body-darken").click(function() {
$("#home-log-in-box").animate({
"opacity":0
}, 115);
$("#home-log-in-box").hide();
$("#home-sign-up-box").hide();
$(".body-darken").animate({
"opacity":0
}, 115);
$(".body-darken").hide();
});
$("#home-log-in-close").click(function() {
$("#home-log-in-box").animate({
"opacity":0
}, 115);
$("#home-log-in-box").hide();
$(".body-darken").animate({
"opacity":0
}, 115);
$(".body-darken").hide();
});
$("#sign-up-button").click(function() {
$("#home-sign-up-box").show();
$("#home-sign-up-box").animate({
"opacity":1
}, 115);
$(".body-darken").show();
$(".body-darken").animate({
"opacity":0.5
}, 115);
});
$("#home-sign-up-close").click(function() {
$("#home-sign-up-box").animate({
"opacity":0
}, 115);
$("#home-sign-up-box").hide();
$(".body-darken").animate({
"opacity":0
}, 115);
$(".body-darken").hide();
});
它们都在同一个文件中,按照显示的顺序。非常感谢!非常感谢任何帮助!
最佳答案
罗素 C.
最重要的一点是,你的js文件是浏览器解析的,不是服务器,浏览器对php一无所知,更不用说$_POST了。您只能在包含的 .js 文件中包含静态 js。如果您需要基于 php 变量编写“动态”js,则必须将其包含在页面的 header 部分,而不是静态 js 文件中。我会做类似下面的事情。 php 决定是否包含这三个 js 行:
<?php
$html = "<head>\n";
$html .= ...
$html .= "<script>\n";
$html .= " $(document).ready(function(){\n";
if(isset( $_POST['signUp'] ) && count($errors)>0) {
$html .= " $('#home-sign-up-box').show();\n";
}elseif(isset($_POST['signUp']) && count($errors)==0){
$html .= " $('#home-sign-up-box').hide();\n";
}else{
$html .= " $('#home-sign-up-box').show();\n";
};
$html .= " })\n";
$html .= "</script>;\n";
$html .= ...
$html .= "</head>\n";
$html .= "<body>\n";
$html .= ...
...
echo $html;
我猜测您的页面停止工作的原因是浏览器命中了您的 js 文件中的所有 php 内容并放弃了发送。
祝你好运
关于javascript - 打开 div 按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39950309/