Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 使用jquery更改id并删除单击事件_Javascript_Jquery - Fatal编程技术网

Javascript 使用jquery更改id并删除单击事件

Javascript 使用jquery更改id并删除单击事件,javascript,jquery,Javascript,Jquery,我有一个名为LOGIN id=log的菜单和一个名为Connect id=Connect的子菜单。如果单击“连接”,将显示一个表单。现在,当用户登录成功时,我想更改用户名的“名称”菜单登录和收件箱的“连接”,这是可行的,但我需要同时更改id和删除 事件侦听器$'connect'。单击函数{},因为用户已连接,我需要收件箱中的新事件,如 $('#inbox').click(function(e) { alert("You click on inbox"); }); Javascript

我有一个名为LOGIN id=log的菜单和一个名为Connect id=Connect的子菜单。如果单击“连接”,将显示一个表单。现在,当用户登录成功时,我想更改用户名的“名称”菜单登录和收件箱的“连接”,这是可行的,但我需要同时更改id和删除 事件侦听器$'connect'。单击函数{},因为用户已连接,我需要收件箱中的新事件,如

$('#inbox').click(function(e) { alert("You click on inbox");    });
Javascript

 $(document).ready(function() {


                function Login() {


                    this.loadForm = function() {

                        $("#response-container").load("formLogin.php", function() {

                            $("#formLogin").submit(function(event) {

                                var user = $("#username").val();
                                var pass = $("#password").val();

                                event.preventDefault();

                                searchData(user, pass);

                            });

                        });

                    }; //END loadForm FUNCTION




                    var searchData = function(user, pass) {

                        getdetails(user, pass)

                        .done(function(response) {

                            if (response.success) {

                                $.each(response.data.users, function(key, value) {

                                    $("#log").text(value['userName']);

                                    $("#connect").text('inbox');


                                    //HERE I WANT TO REMOVE CLICK EVENT FROM #conect and i want to
                                    //change his 'id' for a new id called 'inbox' and add a new
                                    //click event listener                                   

                                });
                            } else {

                                alert("Fail");

                            }
                        })

                        .fail(function(jqXHR, textStatus, errorThrown) {


                        });


                    }; //END FUNCTION searchData




                    var getdetails = function(id, password) {

                            return $.getJSON("20.php", {
                                "id": id,
                                "password": password
                            });

                        } //END FUNCTION getdetails




                }; //END LOGIN CLASS



                //LISTENERS

                $('#connect').click(function(e) {

                    e.preventDefault();

                    var login = new Login();

                    login.loadForm();

                });




            });
html

您可以在jquery对象上使用unbind来删除事件,并使用函数attr来更改id

$('#connect').unbind('click').click(//function click here)
$('#connect').attr('id','inbox');
$("#inbox").click(function (){

//click event

})
参考,

$connect.unbind;删除所有事件

$connect.attr'id','inbox';更改id

$('#connect').unbind('click').click(//function click here)
$('#connect').attr('id','inbox');
$("#inbox").click(function (){

//click event

})
您的代码现在看起来像:

$.each(response.data.users, function(key, value) {

$("#log").text(value['userName']);

$("#connect").text('inbox');

$("#connect").unbind();


$("#connect").attr('id','inbox');

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

    //click event

    })

 });

不推荐使用解除绑定和绑定。您应该使用off取消绑定,使用on进行绑定。

更改ID对绑定事件没有影响,因此您应该避免使用它。使用和来绑定和删除事件。为什么要更改id?@adeneo好的,我需要了解更多关于开和关的信息。谢谢兄弟@David Thomas,因为我需要新元素,可能需要使用新id,如果我使用旧id,可能会让我感到困惑,我不知道我是否错了,或者做了一个不好的练习,我对此一无所知。谢谢,这很有效,但为什么你要使用旧id connect如果它被更改为收件箱,我会更改$connect.clickfunction{}对于$inbox.clickfunction{},它可以完美地工作!还有一个问题。。。我不知道为什么当我点击菜单用户名的新文本时,文本变为旧的登录名。我想这是因为页面被重新加载。你注意到了吗。这是一个锚标记你是对的人,我阻止重新加载,现在是永久的,$'inbox'。单击函数{e.preventDefault;}我接受你的回答,非常感谢。谢谢你的帮助兄弟!!