2015-12-15 87 views
0

HTML如何显示隐藏在此基础上编码

<script type="text/javascript"> 
$(document).ready(function() { 

    // Add onclick handler to checkbox w/id checkme 

    $('.showimage').click(function() { 

    var id = $(this).attr('id'); 

    var ret = id.split("_"); 
    var str1 = ret[1]; 

    //alert(str1); 
    var id = $(this).attr('id'); 
    var ret = id.split("_"); 
    var str2 = ret[1]; 

    //alert(str2); 

    //$(".icon_"+id).show(); 
    // $("#icon").show(); 

    if (str1 == str2) { 
     alert(str1); 
     $(".icon_" + str1).show(); 
     //exit; 
     //alert("hi") 
    } else { 
     alert("sec"); 
     $(".icon_" + str1).hide(); 
    } 
    }); 
}); 
</script> 

为什么不能掩盖其他部分

+5

请编辑您的帖子,以避免眼睛出血。 – orugari

+0

你能详细说明什么是问题,如果可能的话你可以创建一个jsfiddle,http://jsfiddle.net – dreamweiver

+1

你可以使用css':focus' http://jsfiddle.net/2nrda9yv/ –

回答

1

你的问题:为什么不能掩盖其他部分?

这是因为$(this)它指的是当前元素已获得事件引发的选择器的上下文。所以,

var id = $(this).attr('id'); 

上面的变量已经被使用了两次,并且都指向同一个对象。所以在if条件下:

if (str1 == str2) { 

这两个值总是相同的,因此else永远不会被执行。


最好使用.focus()/.blur()事件与.toggle(condition)

$(function(){ 
 
    $('.showimage').on('focus blur', function(e){ 
 
    $(this).next('div').toggle(e.type === "focus") 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="name" id="name_1" value="" class="showimage" /> 
 
<div class="icon_1" id="icon" style="display:none;">one</div><br> 
 
<input type="text" name="name" id="name_2" value="" class="showimage" /> 
 
<div class="icon_2" id="icon" style="display:none;">two</div>

+2

谢谢你同性恋的工作 –

+0

我希望上面的评论有拼写错误:) –

+0

@SureshPonnukalai噢人! – Jai

0

input[type="text"] {} input[type="text"] + div { 
 
    display: none; 
 
} 
 
hr {} input[type="text"]:focus + div { 
 
    display: inline-block; 
 
    /* added for style you can also use display:block */ 
 
}
<input type="text" name="name" id="name_1" value="" class="showimage" /> 
 
<div class="icon_1" id="icon">test1</div> 
 
<hr> 
 
<input type="text" name="name" id="name_2" value="" class="showimage" /> 
 
<div class="icon_2" id="icon">test2</div>