为什么我的jQuery点击函数没有触发

Why is my jQuery click function not firing?

本文关键字:函数 我的 jQuery 为什么      更新时间:2023-09-26

我正在构建一个搜索页面,该页面会回发到自身。 我终于在这里找到了一个示例页面。 我还在这里做了一个小提琴。但我不明白它为什么有效。 当用户最初点击页面时,它应该只显示搜索表单。提交搜索后,它应隐藏表单、显示结果和用于新搜索的按钮。 我正在使用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

$("#newsearch").click(function() {

#newsearch元素存在之前运行。

因此,单击事件不附加到任何内容。

它在第一个块中工作,因为它在 $(document).ready 中,只有在所有内容完成加载后才会在里面运行代码。