如何使div可点击?

时间:2019-12-03 16:49:39

标签: jquery html css

Make a whole div clickable

我检查了几个链接。我了解它,但它不适用于我。

这是我的代码段:

$('.Quiz').click(function(){
  window.location=$(this).find('a').attr('href');
  return false;
})
.Portfolio {
    background-color: #ffffff;
    width: 920px;
    margin: 0 auto;
    position: relative;

    margin-top: 120px;
    margin-bottom: 50px;

    border-style: solid;
    border-color: #dddddd;

    border-width: 2px;

    padding-left: 20px;
    padding-right: 20px;

    overflow: auto;
}

.port {
    color: #4aaaa5;
    border-style: solid;
    border-color: #cccccc;

    border-width: 2px;
    border-left-style: hidden;
    border-right-style: hidden;
    border-top-style: hidden;
}

.container_img  img{
    float:left;
    margin: 0 auto;
    padding: 20px;
    width: 230px;
    height: 230px; 
    position: relative;

}

.container h1 {
    float:left;
    position:relative;
    padding: 20px;
}

.Books{
    clear:left;
}

.Books h1{
    clear:left;
}

.Kernel{
    clear: left;
}

.Kernel h1{
    clear: left;
}

.clear {
    clear: both;
}

.text_m h1{
    position: absolute;
    margin: 0 auto;
    text-align: center;
    color: white;

    background: #4aaaa5;
    opacity: 0.7;
    width:210px;

    margin-top: 200px;
    padding-left: 20px;
    margin-left: 20px;
}

.text_e h1{
    display: inline-block;
    position: relative;

    text-align: center;
    color: white;

    background: #4aaaa5;
    opacity: 0.7;
    width:230px;

    margin-top: 200px;
    right: 250px;

}

.text_b h1{
    position: absolute;
    text-align: center;
    color: white;

  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="Portfolio">

<div class="port"> 
    <h1> Portfolio </h1>
</div>  

<div class="container_img"> 
    <div class="Quiz"> 
        <a href="https://madhumitha.github.io/Quiz/"></a>
        <img  src="assets/images/quiz.jpg" alt="Quiz">
            <div class='text_m'> 
                <h1> Quiz Time </h1>
            </div>
    </div>


    <div class="Weather"> 
        <img src="assets/images/Weather.jpg" alt="Weather">
            <div class='text_e'>
                <h1 id='weather'> Weather </h1>
            </div>
    </div>

    <div class="Books">
        <img src="assets/images/space.jpg" alt="Space"> 
            <div class='text_b'>
                <h1> ISS-Tracker </h1>
            </div>
    </div>

    <div class="Photography">
        <img src="assets/images/Photography.jpg" alt="Photography">
            <div class='text_p'>
                <h1> Photography </h1>
            </div>
    </div>

    <div class="Kernel">
        <img src="assets/images/Kernel.jpg" alt="Kernel">
            <div class='text_k'>
                <h1> Kernel </h1>
            </div>
    </div>

    <div class="clear"></div>
    </div>           
</div>

我正在尝试使div可点击第一张图片。我不知道怎么了? Click事件是否不适用于css中的float和clear?

3 个答案:

答案 0 :(得分:3)

HTML5中,将div放在a标记内是完全有效的。

<a href="https://madhumitha.github.io/Quiz/">
  <div class="Quiz"> 
    <img  src="assets/images/quiz.jpg" alt="Quiz">
    <div class='text_m'> 
      <h1> Quiz Time </h1>
    </div>
  </div>
</a>

答案 1 :(得分:0)

缺少$(document).ready()可以解决问题。

$(document).ready(function() {
    console.log($('.Quiz').length);

    $('.Quiz').click(function(){
        window.location = $(this).find('a').attr('href');
        return false;
    });
});

答案 2 :(得分:0)

您需要将Quiz div的子元素推入锚点,然后根据需要设置锚点的宽度和高度,并将样式显示块设置到锚点标签中。

<div class="Quiz"> 
     <a href="https://madhumitha.github.io/Quiz/" style="display:block">
        <img  src="assets/images/quiz.jpg" alt="Quiz">
            <div class='text_m'> 
                <h1> Quiz Time </h1>
            </div>
     </a>
</div>