使用javascript禁用功能

时间:2015-11-24 22:16:17

标签: javascript

我似乎无法找到禁用javascript函数的代码。我想要做的是有一个JavaScript函数,然后我想禁用它。这是代码:

 <script>
 var fooFunc = function fooFunction() {
      alert("HELLO");
 };

 $(document).ready(function() {
      fooFunc.disable();    
 });
 </script>

 <button onclick="fooFunc()">Button</button>

基本上,单击按钮时该功能不起作用,应该禁用。感谢

5 个答案:

答案 0 :(得分:2)

&#34;禁用&#34; fooFunc与将其设置为空函数(null - 相同 - 在下次调用时会导致错误)。在这种情况下:

$(document).ready(function() {
  fooFunc = function() { };
});

但我不知道这与简单地从HTML元素中删除onclick处理程序有什么不同。

如果您想要禁用/重新启用该功能,可以这样写:

fooFunc = function() {

  function _fooFunc() {
    if (!enabled) return;
    alert("HELLO");
  }

  var enabled = true;
  _fooFunc.enable  = function() { enabled = true; };
  _fooFunc.disable = function() { enabled = false; };

  return _fooFunc;

}();

如果要扩展它以允许启用/禁用任何功能,您可以编写一个更高阶的函数,它将任何函数作为参数,并返回一个enable和{{1的函数附加到它的方法:

disable

现在您可以将function disablable(fn) { function inner() { if (!enabled) return; fn(); } var enabled = true; inner.enable = function() { enabled = true; }; inner.disable = function() { enabled = false; }; return inner; } 定义为

fooFunc

,其余代码将按您的意愿运行。

答案 1 :(得分:1)

您可以访问元素的onclick属性..

 <button id="id" onclick="fooFunc()">Button</button>


 <script>
   document.querySelector('#id').onclick = '';
 </script>

答案 2 :(得分:1)

如果您不希望该功能完全正常工作并完全禁用,请使用以下内容。

如果您希望该功能仅在某些条件下工作,那么您将需要if/else语句,因此只有在满足您设置的条件时它才会起作用。

$(document).ready(function(){
    $("button").onclick(function(event){
        event.preventDefault();
    });
});

答案 3 :(得分:0)

您要将其定义为undefined或null。

fooFunc=undefined;

答案 4 :(得分:0)

你应该这样做:)在第一次运行时更改功能定义,你很高兴。

<! DOCTYPE html>
<html lang="en">


<body>
<script>
    var fooFunc = function() {
        alert("HELLO");
        fooFunc = function(){};
    };

    var enablefooFunc = function()
    {
        fooFunc = function() {
            alert("HELLO");
            fooFunc = function(){};
        };
    }

</script>

<button onclick="fooFunc()">Run once and Disable FooFunc</button>
<button onclick="enablefooFunc()">Enable FooFunc</button>
</body>

</html>