如果单击提交则隐藏div,并且存在具有类“row”的div

时间:2017-04-13 14:12:55

标签: javascript jquery

您是否介意告诉我这是否是编写此脚本的最有效方法?当我将它添加到jsfiddle但它在我的网站上遇到问题时它可以工作。如果点击提交时存在类“row”的div,我想用类“nores”隐藏div。

@Autowired
$('h2').append('<br /><div class="nores">no results found</div>');
$('#submit').on('click', function(nor){
    if ($('.row').length > 0) {
  $('.nores').hide();
}
});

1 个答案:

答案 0 :(得分:0)

你的问题有点不清楚,但我认为解决方案就在那里:

  • 将代码封装在$(document).ready(function () {});$(function () {});中,以确保在DOM准备就绪时执行该代码。

  • 使用事件委派来利用冒泡。这是避免听众意外问题的好习惯。如果您需要灵感,可以阅读以下文章:https://learn.jquery.com/events/event-delegation/

  • 使用模块整理JavaScript代码。否则,由于全局范围内的混乱,您很可能会发生冲突...如果您不想打扰AMD或CommonJS,您可以简单地重构您的代码:

    var module = {
      init: function () {
        module.listeners();
      },
      listeners: function () {
        $('#submit').on('click', module.submit);
      },
      submit: function () {
        if ($('.row').length > 0) {
          $('.nores').hide();
        }
      }
    };
    
    $(document).ready(module.init);