基于jquery的函数来“关闭”<div>不工作</div>

时间:2014-03-06 23:05:13

标签: javascript jquery

在我的webapplication中,我有以下功能,可以打开和关闭标签,模拟弹出窗口:

<script>
    function load_page(url){
        $('#results').css("display", "block");
        $('#content').load(url);
    }
    function close(){
        $('#results').css("display", "none");
        $('#content').empty();
    }
    </script>

第一个是完美的,但第二个没有。我将此函数设置为从此处调用:

<div align="right"><button type="button" class="btn btn-lg btn-danger" onclick="close()">Fechar</button></div>

如果我用另一个代码替换此代码(不使用jquery),则该方法有效:

function close() {
      document.getElementById("results").style.display = 'none';
      document.getElementById("content").innerHTML=' ';
  }

有没有办法用jquery做到这一点?

ps。:此代码对此采取行动:

<div class="panel panel-default" id="results">
            <div class="panel-heading">
              <h1 class="panel-title">Panel title</h1>
              <div align="right"><button type="button" class="btn btn-lg btn-danger" onclick="close()">Fechar</button></div>
            </div>
            <div class="panel-body" id="content">
              Panel content
            </div>
          </div>

1 个答案:

答案 0 :(得分:1)

您的代码无效的原因是因为内联事件处理程序实际上并未调用您定义的close函数。

事件处理程序close内部引用document.close,因为document的属性放在事件处理程序的范围内。您可以使用

轻松测试
onclick="console.log(close === document.close);"

作为处理程序。这是one of the reason why not to use inline event handlers

解决方案:


既然你也承认你没有运行非jQuery版本,那么它与使用jQuery无关。