0

我有一个 div 使用相对定位的容器中的绝对位置“覆盖”在主容器的顶部。我正在尝试获取它,以便当我单击一个按钮时,它会通过删除hide类来显示。它似乎没有任何效果,即使在控制台中我没有收到任何错误(并且newThread没有隐藏。)

<div id='newThread' class='hide'>
    <form>
        <textarea></textarea>
    </form>
</div>
 #container { position: relative; }

 #newThread { 
 position: absolute;
 top: 50px;
 background-color: rgba(239, 239, 239, 0.9);
 left: 50px; width: 600px;
 min-height: 480px; border-radius: 5px;
 box-shadow: 5px 2px 5px #888; 
 }

 .hide { display: none; }
 $('#sidebar').html('<h1>Welcome to the forum!</h1><div class="container"><button class="btn btn-default" id="newThreadButton">New Topic</button><br /><button class="btn btn-default">Log out</button></div>');
 $('#sidebar').fadeIn();
 $('#newThreadButton').click(function() {
     $('#newThread').removeClass('hide');                       
 });

alert($('#newThread').hasClass('hide'));输出false

http://jsfiddle.net/YBqMn/

4

4 回答 4

1

动画很可能是style="display:none;"在元素上做的。尝试,而不是删除类隐藏,做$(element).show();

看到 fiddle 之后,你就有z-index: -1了#newThread。将其更改为z-index: 2000,您将看到叠加层。(不确定这是否是您想要的)

我更新了你的小提琴:http: //jsfiddle.net/YBqMn/1/

于 2013-08-14T23:49:32.050 回答
0

我的错误是我放入newThread了我在 ajax 调用时擦除的同一个容器,因此当我更新侧边栏时该元素不存在。当它在文档加载时输出正常时,我发现了这一点,但是undefined当侧边栏动画开始时。我必须在表单周围添加一个包装器,以将其与newThreaddiv 分开。我还必须删除z-index: -1,因为这会导致问题。

于 2013-08-15T02:44:44.107 回答
0

您将功能分配给页面上不存在的元素。您可以写入第一行:

<button class="btn btn-default" onclick="$('#newThread').removeClass('hide')">
于 2013-08-14T23:34:58.290 回答
0

元素#NewThreadButton 不存在。

一种选择是

$('#newThread button, #newThread submit').click(function() {
     $('#newThread').removeClass('hide');                       
});

如果您单击表单内的任何 BUTTON 或 SUBMIT 元素,就会触发该事件。

确保您在表单中至少有一个 BUTTON 或 SUBMIT。

于 2013-08-14T23:46:48.580 回答