我正试图在内外进行onclick工作以进行div hide和show,但它会一次又一次地被解雇!
html代码
<div id='test' class='hidden'>test</div>
js code:
function divcode(){
$('#test').live('click', function() {
if($('#test').hasClass('hidden')){ $(this).removeClass(); $(this).addClass('show'); $("#test").show();
}
});}
$("html").click(function(){
if($('#test').hasClass('show')){ $('#test').removeClass(); $('#test').addClass('hidden'); $("#topuserdetails").hide();
});
答案 0 :(得分:0)
这可能是因为最初你的div没有上课。将这两个类中的任何一个添加到div中然后尝试。 像这样:
<div id="test" class="show">Demo</div>
如果这仍然没有解决,也可以制作一个jsFiddle,这样你就可以得到更好的回应。
答案 1 :(得分:0)
您可以通过链接jQuery调用来实现大部分所需功能:
$('html').click(function() {
$('#test').toggleClass('hidden').toggleClass('show').toggle();
});
<div id="test" class="show">test</div>
click()
事件绑定到HTML
元素,但JavaScript始终直接操作<div id="test"/>
元素。
我还将其添加为a demo
答案 2 :(得分:0)
我相信你需要这样的东西:
$test = $('#test');
$('#test').click(function(event) {
if ($test.hasClass('hidden')) {
$test.removeClass();
$test.addClass('show');
$("#topuserdetails").show();
}
event.stopPropagation();
});
$("html").click(function() {
if ($test.hasClass('show')) {
$test.removeClass();
$test.addClass('hidden');
$("#topuserdetails").hide();
}
});
event.stopPropagation();
是必需品,因此当您点击$('test')
时,$('html')
点击事件也不会触发。
在此处查看此行动:http://jsfiddle.net/xXBEY/8/