gpt4 book ai didi

javascript - 设置 div 容器的高度会禁用 div 内部的点击?

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:21 24 4
gpt4 key购买 nike

这很奇怪。我在 3 个 div 中有一个输入按钮,其中最外层被标识为“容器”。当我设置“容器”的高度时,当我点击标识为“开关”和“下一步”的输入时,不会触发任何操作。但是,当我没有为#container 设置高度时,单击操作会起作用。是什么原因造成的?谢谢你!我的 html 和 css 在下面。

html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv:"Content-Type" content="text/html; charset=ISO-8859-1" />
<script text="text/Javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/Javascript" src="jquery.js"> </script>

<link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>

<link rel="stylesheet" type="text/css" href="jquery_home.css">


<title> jquery home </title>


</head>
<body>

<div id="container">

<h1 style="position: relative; top: 10%; width: 300px; margin-left: auto; margin-right: auto"> Learn jQuery </h1>

<div id="q_and_a_container" style="text-align: center">
<div style="width: 200px; margin-left: auto; margin-right: auto; text-align: center" id="qa" height="500px"> Nate</div>
<input type="submit" id="switch" value="See Answer" />
<input type="submit" id="next" value="Next Question" />


</div>

<div id="answer_container">
<textarea id="answer_here"> </textarea>
</div>

</div>

<div id="another_container" style="width: 300px; margin-left: auto; margin-right: auto; text-align: center">

<h2 style="font-family: 'Chalk'">
<a href="add_question.html">Add question </a> </h2>

</div>





</body>

</html>

CSS

@font-face {
font-family: "Chalk";
src: url("../../font/KGSecondChancesSketch.ttf");
}

h1 {
font-family: "Chalk";
}

html, body {
height: 100%;
margin: 0;
}

#container {
width: 100%;
height: 50%;
}

body {
background-image: url(../../../img/compressedbgs/chalkboard.jpg);
background-size: 100% 100%;
background-repeat: repeat-x;
}


#q_and_a_container {
height: 50%;
position: relative;
float: left;
top: 25%;
left: 2%;
width: 45%;
margin: 1%;
background-color: rgba(255, 255, 255, 0.1);

-webkit-box-shadow: 0px 0px 12px rgba(0,0,0,0.4);
-moz-box-shadow: 0px 1px 6px rgba(23, 69, 88, .5);
-webkit-border-radius: 12px;
-moz-border-radius: 7px;
border-radius: 7px;

background: -webkit-gradient(linear, left top, left bottom,
color-stop(0% white), color-stop(15%, white),
color-stop(100%, #D7E9F5));
background: -moz-linear-gradient(top, white 0%, white 55%, #D5E4F3);
z-index: 45;
}

div#qa {
position: relative;
top: 25%;
height: 75%;
z-index: 50;
}

#answer_container {
position: relative;
float: left;
height: 50%;
top: 25%;
left: 2%;
width: 45%;
background-color: rgba(0,0,0,0.1);
margin: 1%;
border: none;
-webkit-border-radius: 12px;
-moz-border-radius: 7px;
border-radius: 7px;
}

input {
width: 107px;
margin-left: auto;
margin-right: auto;
background-color: rgba(255, 255, 255, 0.1);
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
font-family: 'Droid Sans Mono';
z-index: 1000;
}

textarea {
color: white;
font-family: "Droid Sans Mono";
width: 100%;
height: 100%;
border: none;
-webkit-border-radius: 12px;
-moz-border-radius: 7px;
border-radius: 7px;
background-color: rgba(0,0,0,0.1);
-moz-appearance: none;
font-size: medium;
}

textarea:focus {
outline: none;
border: none;
}

#add_question {
clear: both;
}

a {
text-decoration: none;

}

a:visited {
color: black;
}

JS:

$(document).ready(function() {

var question_number = 1;
var tempText;
var qno;


$(document).on("click", "#switch", function(event) {
if ($("#switch").val() == "See Answer") {
tempText = $("#qa").text();
$("#qa").text("");
qno = "" + question_number;
qno = "#" + qno;

$.ajax({
url: "answers.html",
datatype: "html",
success: function(data) {
$("#qa").html($(data).filter(qno).text());
},
error: function(r) {
alert("whoops, error in ajax request");
}
}); // end AJAX request

// change value
$("#switch").val("See Question");
} else {

temptText = $("#qa").text();
$("#qa").text("");
qno = "" + question_number;
qno = "#" + qno;

$("#qa").text(tempText);
$("#switch").val("See Answer");
}
});

$(document).on("click", "#next", function(event) {
question_number = question_number + 1;
qno = "" + question_number;
qno = "#" + qno;

$.ajax({
url: "questions.html",
datatype: "html",
success: function(data) {
$("#qa").text($(data).filter(qno).text());
},
error: function(r) {
alert("whoops, error in ajax request for next question");
}
}); // end AJAX request
});

$("textarea").keydown(function(e) {
if(e.keyCode === 9) { // tab was pressed
// get caret position/selection
var start = this.selectionStart;
var end = this.selectionEnd;

var $this = $(this);
var value = $this.val();

// set textarea value to: text before caret + tab + text after caret
$this.val(value.substring(0, start)
+ "\t"
+ value.substring(end));

// put caret at right position again (add one for the tab)
this.selectionStart = this.selectionEnd = start + 1;

// prevent the focus lose
e.preventDefault();
}
});


})

最佳答案

原因是 div 的 z-index 将其定位在输入的顶部。您已经在输入上设置了 z-index,但因为它们是静态元素,所以它被忽略了。

position:relative; 添加到输入中,它们将被带到前面。

关于javascript - 设置 div 容器的高度会禁用 div 内部的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29619420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com