在一个函数中合并javascript代码时,代码不起作用

时间:2017-03-30 06:46:26

标签: javascript php

大家好日子!

我在一个函数中合并代码时遇到问题。 (如果可能的话)。

首先:

  • 有一张桌子。
  • 当表格行单击时,将启用两个按钮。

以下是代码:

   function enableRegButton() {
        $('#registerExist').prop('disabled', false);
        $('#edit').prop('disabled', false);

        // regButton execute when Enter key pressed
        $(document).unbind("keyup").keyup(function(e){ 
            var code = e.which; // recommended to use e.which, it's normalized across browsers
            if(code==13)
            {
                $("#registerExist").click();
            }
        });
    }

第二

  • 当按下Escape键时,它将禁用所有绑定按钮。

以下是代码:

   $(document).keyup(function(e) {
         if (e.keyCode == 27) { // escape key maps to keycode `27`
            $('#registerExist').prop('disabled', true);
            $('#edit').prop('disabled', true);
            document.getElementById("enStudID").value = "";
            document.getElementById("enInfoID").value = "";
            document.getElementById("enCoffID").value = "";
            document.getElementById("enYearID").value = "";
        }
    });

现在,我想要做的是上面的两个代码将在一个函数中合并,它将调用该函数并触发所有这些代码,因此当我编辑代码时,它将被集中。

这是我的最终代码:

function enableRegButton() {
        $('#registerExist').prop('disabled', false);
        $('#edit').prop('disabled', false);

        // regButton execute when Enter key pressed
        $(document).unbind("keyup").keyup(function(e){ 
            var code = e.which; // recommended to use e.which, it's normalized across browsers

            settings();

        });
    }
// This code is for ESC button when pressed.
$(document).keyup(function(e) {

         settings();
    });

function settings(){
        if(code==13)
        {
            $("#registerExist").click();
        }
        else if (code==27){ // escape key maps to keycode `27`
            $('#registerExist').prop('disabled', true);
            $('#edit').prop('disabled', true);
            document.getElementById("enStudID").value = "";
            document.getElementById("enInfoID").value = "";
            document.getElementById("enCoffID").value = "";
            document.getElementById("enYearID").value = "";
        }
    }

问题:

  • 单击表格行时,只有启用按钮正常工作
  • 按Escape键不会禁用启用的按钮。
  • 按Enter键时,代码无法运行。

2 个答案:

答案 0 :(得分:3)

您需要将密钥代码传递给settings方法。

$(document).keyup(function(e) {
    settings(e.keyCode);
});

function settings(code) {

在调试Javascript问题时使用浏览器的开发者控制台,它是一个非常宝贵的工具,可以很容易地解决这类问题。

答案 1 :(得分:1)

您在unbind回调中分配code变量,而不是在bind回调中分配:)