Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onClick事件未触发_Javascript - Fatal编程技术网

Javascript onClick事件未触发

Javascript onClick事件未触发,javascript,Javascript,我正在尝试使用Javascript来控制web表单。下面是我所有的Javascript代码以及我试图实现的内容 $(document).ready(function(){ function loadPage(url){ $(".body").fadeOut(400, function(){ $(".body").load(url); $(".body").fadeIn(400); }); }

我正在尝试使用Javascript来控制web表单。下面是我所有的Javascript代码以及我试图实现的内容

$(document).ready(function(){
    function loadPage(url){
        $(".body").fadeOut(400, function(){
            $(".body").load(url);
            $(".body").fadeIn(400);
        });
    }
    loadPage("pages/login.html");

    $("#button").on("click", function(){
        var pageTo = this.name;
        loadPage("pages/" + pageTo + ".html");
    });
});
代码稍后将执行更复杂的操作,但它甚至没有运行上述操作

我的表格是这样的

<FORM>
    <SPAN class='header'>Login</SPAN><BR/>
    <LABEL for='username' class='loginLabel'>Username</LABEL>
    <INPUT type='text' id='username' name='username' value='' />
    <LABEL for='password'class='loginLabel'>Password</LABEL>
    <INPUT type='password' id='password' name='password' value='' />
    <INPUT type='hidden' name='process' value='login' />
    <INPUT type='button' value='Login' name='index' id='button' />
</FORM>

登录
用户名 密码

这是一个简单的登录表单,但单击按钮时,文本不会显示在控制台中。我不想使用submit按钮和JQuery.submit()事件,因为我希望相同的代码可以处理多种类型的内容,包括链接和可能的其他元素。

尝试使用
。on

$("#button").on('click', function(){
    console.log("Clicked");
});

jQuery对象没有
onClick
方法。使用。您的代码应该如下所示:

$("#button").click(function(){
    console.log("Clicked");
});

向jquery注册处理程序不是正确的方法

试一试


不是单击
onclick
而是单击
click

$("#button").click();
$(“#按钮”)
返回没有
onclick
属性/方法的jQuery对象。使用
。单击

$('#button').click(function() {

});

在将onclick行为指定给按钮之前,是否确实正在等待加载文档?尝试将作业更改为在内部

$(document).ready(function(...))

您正在尝试在页面中存在元素之前绑定事件处理程序

通过将回调传递给
.load
,在添加表单后绑定处理程序

$(document).ready(function(){
    function loadPage(url){
        $(".body").fadeOut(400, function(){
            $(".body").load(url, function() {
                $("#button").on("click", function(){
                    var pageTo = this.name;
                    loadPage("pages/" + pageTo + ".html");
                });
            });
            $(".body").fadeIn(400);
        });
    }
    loadPage("pages/login.html");
});
或使用事件委派(请参阅中的直接和委派事件一节):


也不行。我在控制台中什么也没得到,我甚至尝试了alert,但它什么也没做。ready函数:
$(document.ready(function(){…})从一开始就这样做了,不觉得在上面的代码中包含它很重要是的,最后一次输入的类型是button,id为buttonIt,必须是您正在做的其他事情,因为您提供的代码工作正常--…这不值得检查吗?不管是谁骗了我,你真的从来没有这么做过吗?我真的在等文件加载。我觉得把它添加到上面的代码中并不重要。结果和以前一样。控制台中没有显示任何内容。我也没有收到任何错误。这不是用jQuery绑定事件处理程序的方式。我建议你看看,我看了。它也不起作用。如果您阅读了其他答案,我在其中添加了注释,但它们似乎都不起作用。那么您没有告诉我们一些事情(可能是页面上的其他代码有问题),因为它起作用:。我假设
pages/login.html
包含表单?在绑定事件处理程序时,元素还不存在,因此无法绑定它。在包含内容或使用事件委派后绑定事件处理程序。@legobear154:请查看“直接和委派事件”一节。在此上下文中也很有用:。
$(document).ready(function(){
    function loadPage(url){
        $(".body").fadeOut(400, function(){
            $(".body").load(url, function() {
                $("#button").on("click", function(){
                    var pageTo = this.name;
                    loadPage("pages/" + pageTo + ".html");
                });
            });
            $(".body").fadeIn(400);
        });
    }
    loadPage("pages/login.html");
});
$(document).on("click", "#button", function(){
    var pageTo = this.name;
    loadPage("pages/" + pageTo + ".html");
});