如何在正在运行的JS函数中执行函数 - 修改JS游戏

时间:2011-11-23 22:03:41

标签: javascript

我正在尝试修改一个以单一功能执行的js游戏。

我有来自主要html(Facebook分享内容)的用户提示,这是在游戏中触发并暂时覆盖它。因此,我想在游戏中执行一个功能(以实现游戏)。有什么想法吗?

我正在学习js,可能会遗漏某些东西......

感谢您的快速建议!

游戏作为html GameFunction中的函数执行(参数...) 在游戏中游戏超过条件的游戏执行

$('#fbForm').show();

<div id="fbForm" style="position: absolute; top: 100px; left: 100px; z-index: 20; display: none">
<form  method="" action="" >
<fieldset>    
 <label >Share on FB</label>
<input type="button" name="close" class="button" id="close" value="Play!" onclick="postToFeed();"   />
<input type="button" name="close" class="button"  id="x" value="x" onclick="XXX"  />
 </fieldset>
</form>
</div>

当点击按钮#x时,有没有办法在GameFunction()中执行游戏功能?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你会得到类似这样的代码:

function GameFunction (foo, blah) {
    // does lots of stuff here

    function GameOverStart () {
        // does some stuff
        $('#fbForm').show();
    }

    function GameOverFinish () {
        // does some more stuff, like hide the form
    }
}
GameFunction(1.0, 2.5);

并且您希望按钮#x调用嵌套的GameOverFinish函数。

选项1:将GameOverFinish保存为全局变量(即作为'window'的属性):

    window.GameOverFinish = function () {
        // does some more stuff, like hide the form
    };

你的html应该是

    <input type="button" name="close" class="button"  id="x" value="x" onclick="window.GameOverFinish()"  />

选项2:在执行GameFunction期间使用jQuery绑定按钮(参见http://api.jquery.com/click/

    function GameOverFinish () {
        // does some more stuff, like hide the form
    }
    $('#x').click(GameOverFinish);
    // no HTML 'onclick' value is needed in this case