jquery隐藏显示外部错误

时间:2011-11-05 13:34:34

标签: jquery

我正试图在内外进行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();
});

3 个答案:

答案 0 :(得分:0)

这可能是因为最初你的div没有上课。将这两个类中的任何一个添加到div中然后尝试。 像这样:

<div id="test" class="show">Demo</div> 如果这仍然没有解决,也可以制作一个jsFiddle,这样你就可以得到更好的回应。

答案 1 :(得分:0)

您可以通过链接jQuery调用来实现大部分所需功能:

的JavaScript

$('html').click(function() {
    $('#test').toggleClass('hidden').toggleClass('show').toggle();
});

HTML

<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/