功能范围干扰我的功能

时间:2015-04-21 14:32:55

标签: javascript jquery

如何在没有删除功能范围的情况下运行我的功能关闭()实时() .ready()

<form id="1" name="first-form">
    <p>
        <input type="button" value="Submit 1" onClick="Off();">
    </p>
</form>

<form id="2" name="second-form">
    <p>
        <input type="button" value="Submit 2" onClick="Live();">
    </p>
</form>

我的js代码如下:

$(document).ready(function(){
    function Off(){
        alert('off');
    }

    function Live(){
        alert('live');
    }
});

2 个答案:

答案 0 :(得分:0)

如果您将处理程序放在html中,那么您的功能必须是全局的,请尝试删除就绪函数:

function Off(){
    alert('off');
}

function Live(){
    alert('live');
}

答案 1 :(得分:0)

评论者指出,您应该将功能移出范围。但如果不可能,你可以将功能添加到一个对象(所以你不会有大量的变量污染全局范围)并导出它;然后只需更改点击事件调用的函数的名称。

的JavaScript

$(document).ready(function () {

    window.module = {
      Off: function () {
        alert('off');
      },
      Live: function () {
        alert('live');
      }
    }

});

HTML

<input type="button" value="Submit 1" onClick="module.Off();" />
<input type="button" value="Submit 2" onClick="module.Live();" />

DEMO

说真的,这远非最佳解决方案,但它确实回答了我的问题。