【问题标题】:Simple Javascript not working to hide div简单的 Javascript 无法隐藏 div
【发布时间】:2013-09-26 13:40:11
【问题描述】:

我正在尝试学习一点 java 脚本,任何帮助将不胜感激,因为我对这个世界还很陌生,只是在学习。我尝试在此站点上下查找,并尝试了其他用户的一些建议,但似乎没有一个真正回答我的问题。

我有这段代码:

我只是想让它在单击 x 时慢慢隐藏一个 div 框。该按钮出现并且可以单击但没有任何反应。有人可以帮我看看我做错了什么吗?

<div id="daily_deal">
    <button id="close_x" onclick="myFunction($)"><img src="/assets/templates/blacbold_TEST/images/red_x.png" /></button>
    <div id="widget"><iframe src="dailydeal_widget.asp" scrolling="no" frameborder="0"     style="border:none; overflow:hidden; width:155px; height:355px;" allowtransparency="true"></iframe></div>

  function myFunction($) {
      $(document).ready(function() {
          $("#close_x").click(function () {
              $("#widget").slideToggle("slow");
          });
      });
  })(jQuery);

【问题讨论】:

  • +1 用于提供代码和 HTML...欢迎使用 StackOverflow。

标签: javascript jquery html


【解决方案1】:

你只需要这一点:

$(document).ready(function() {
      $("#close_x").click(function () {
          $("#widget").slideToggle("slow");
      });
  });

然后您可以从按钮中删除onclick

<button id="close_x"><img src="/assets/templates/blacbold_TEST/images/red_x.png" /></button>

它所做的是在您单击按钮时绑定到文档就绪事件,但由于这已经发生,绑定单击事件的代码永远不会运行。

【讨论】:

  • +1:几个相同的答案,但你首先得到了清晰的解释和示例。
  • "但由于这种情况已经发生,绑定点击事件的代码永远不会运行。"伪事件文档准备好使用手动解决的承诺,即使 DOM 已经准备好。然后可以随时使用准备好的文档,只是一旦触发,处理程序就会解除绑定。据说+1是为了解释
  • 谢谢大家的帮助。如果您想看一下,这里是他网站的链接。这是右侧的每日交易小部件。任何设计或功能建议将不胜感激。 www.provisual.com
【解决方案2】:

使用

<button id="close_x" onclick="toggleWidget();">

function toggleWidget() {
    $("#widget").slideToggle("slow");
}

【讨论】:

  • 如果可以选择在 HTML 中混合使用 JQuery 函数调用,并且只使用 JQuery,我总是会推荐只使用 JQuery 的方法(简化维护)。
  • 谢谢大家的帮助。如果您想看一下,这里是他网站的链接。这是右侧的每日交易小部件。任何设计或功能建议将不胜感激。 www.provisual.com
  • 罗伊。我用你的方法让我的盒子靠近和打开。不过我想知道一些事情。我在我的网站的主框架(页眉/页脚等)上设置了这个
    ,所以每次您单击链接时,该框都会重置并再次显示。有没有办法告诉我的网站始终关闭该框,直到该人再次点击打开它?
【解决方案3】:

您可以删除$(document).ready() 行。也就是说,从您的函数中删除第 2 行和第 6 行。这意味着您想在页面加载后做一些事情,这不会在调用此函数的同时发生。

【讨论】:

  • 谢谢大家的帮助。如果您想看一下,这里是他网站的链接。这是右侧的每日交易小部件。任何设计或功能建议将不胜感激。 www.provisual.com
【解决方案4】:

你只需要这个代码:

$(document).ready(function() {
      $("#close_x").on("click", function () {
          $("#widget").slideToggle("slow");
      });
  });

onclick="myFunction($)" 不再需要了。

【讨论】:

  • 谢谢大家!它完美地工作我非常感谢所有的帮助。上帝保佑
【解决方案5】:

onclick 中不需要调用函数,所以生成的 html 应该是这样的。

<button id="close_x"><img src="/assets/templates/blacbold_TEST/images/red_x.png" /></button>

你的脚本应该是

 $(document).ready(function() {
          $("#close_x").click(function () {
              $("#widget").slideToggle("slow");
          });
      });

【讨论】:

  • 谢谢大家的帮助。如果您想看一下,这里是他网站的链接。这是右侧的每日交易小部件。任何设计或功能建议将不胜感激。 www.provisual.com
【解决方案6】:

你可以试试这个功能来隐藏和显示 div 标签:

$(document).ready(function(){

    $(".productDescription").hide();
    $(".show_hide").show();

$('.show_hide').click(function(){
$(".productDescription").slideToggle();
return false;
});

});

喜欢 HtmL 代码:

<a href="#" class="show_hide">See Full Description</a>
<div class="productDescription">
  <p>This very large bath bomb will fizz up to two minutes, how good is that. Drizzled   with soap it looks so authentic. This cake slice has a scent of Tropical Fruit including   Pineapple, Mango & Grapefruit and you'll be surrounded by gorgeous flowers and glitter.   <a  href="#" class="show_hide">Hide</a></p></div>

【讨论】:

  • 谢谢大家的帮助。如果您想看一下,这里是他网站的链接。这是右侧的每日交易小部件。任何设计或功能建议将不胜感激。 www.provisual.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
相关资源
最近更新 更多