.slideDown和.click(function(){$(“#results”)。slideUp(“slow”);});冲突

时间:2011-08-26 02:31:26

标签: javascript jquery

我有:

table2.assemble = function () {
  $("#results").slideDown("slow");
  $("#fullbody").click(function() {
    $("#results").slideUp("slow");
  });
}

嵌入在使用#fullbody中的onclick搜索按钮调用的函数中

window.addEventListener('load', function () {
  document.getElementById('sssearch').addEventListener('click', table2.assemble, false)
}, false);

搜索结果向下滑动...但是当我第二次没有点击时,会立即再次向上滑动。

div是:

<div id="results" style="display: none;">
</div>

1 个答案:

答案 0 :(得分:0)

在下面的代码中,您将一个单击处理程序附加到一个函数内的fullbody元素,该函数被称为sssearch元素的onclick。每次单击sssearch时,都会附加单击处理程序。因此会有多个click事件处理程序。

table2.assemble = function () {
  $("#results").slideDown("slow");
  $("#fullbody").click(function() {$("#results").slideUp("slow");});
}

把它带到功能之外。我认为问题只在这里。

$("#fullbody").click(function() {$("#results").slideUp("slow");});

table2.assemble = function () {
  $("#results").slideDown("slow");
}

另外,要在页面加载时执行任何操作,您可以使用jQuery的$(document).ready()$()

$(function(){
   //Do your stuff here
});