为什么我的jQuery点击功能没有触发?

时间:2015-03-28 23:32:03

标签: javascript jquery

我正在建立一个回复自己的搜索页面。我终于得到了一个样本page working here。我也是built a fiddle here。但我不明白它为什么会起作用。当用户最初点击页面时,它应该只显示搜索表单。提交搜索时,应隐藏表单,显示结果和新搜索按钮。我正在使用jQuery。这是我的代码:

//Code Block 1
// Show search form if there is no querystring
//Hide search form, show  results if querystring
$(document).ready(function() {
if(document.location.search.length) {
    $("#newsearch").show(1000);
    $("#results").show(1000);
    $("#search").hide(300);
} else {
    $("#search").show();
}
});

//code block 2
//if new search clicked, show form, hide  results

     $("#newsearch").click(function() {
    $("#newsearch").hide(1000);
    $("#results").hide(1000);
    $("#search").show(300);

});

当代码块1和2加载到头部时,块2永远不会触发。当我拉出2并将其放在页面的末尾时,它就可以了。

我正在努力学习,所以我有2个问题。 (1)为什么在一个街区时它不起作用,(2)有什么建议可以做得更好?

谢谢。

d

1 个答案:

答案 0 :(得分:4)

$("#newsearch").click(function() {正在运行之前 #newsearch元素。

因此,click事件不会附加任何内容。

它在第一个块中起作用,因为它位于$(document).ready中,只有在所有内容完成加载后才能运行代码。