javascript - jQuery - 如何在另一个范围内调用一个函数

标签 javascript jquery

我正在使用这个:http://terminal.jcubic.pl/

我想输出一些东西,并且让那个输出成为一个超链接,当点击它时会输出其他东西。

    jQuery(document).ready(function($) {
        $('#terminal').terminal(function(cmd, term) {
             term.echo('\nClick this: <a onClick="javascript:terminal.exec(\'somethingelse\')">somethingelse</a>', {raw: true});
        }, {
            greetings: "Welcome!\n",

            onInit: function(terminal) {
                terminal.echo('Welcome!');
            },
            prompt: '> '
        });
    });

但是,

<a onClick="javascript:terminal.exec

不起作用,因为 terminal.exec 未在窗口的上下文中定义。正确的做法是什么?

谢谢!

最佳答案

您可以在 JavaScript 中定义 onclick 处理程序:

<!-- In your HTML -->
<a class="trigger-terminal" href="#">Terminal</a>

// In your JavaScript in the scope of terminal
$('.trigger-terminal').click(function() { terminal.exec(); });

或者您可以通过将terminal 变量附加到全局window 对象来公开您的terminal 变量:

window.terminal = terminal;

以下是与您的代码内联的两个建议:

// First suggestion

jQuery(document).ready(function($) {
    $('#terminal').terminal(function(cmd, term) {
         term.echo('\nClick this: <a onClick="javascript:terminal.exec(\'somethingelse\')">somethingelse</a>', {raw: true});
    }, {
        greetings: "Welcome!\n",

        onInit: function(terminal) {
            $('.trigger-terminal').click(function() { terminal.exec(); });

            terminal.echo('Welcome!');
        },
        prompt: '> '
    });

// Second suggestion

jQuery(document).ready(function($) {
    $('#terminal').terminal(function(cmd, term) {
         term.echo('\nClick this: <a onClick="javascript:terminal.exec(\'somethingelse\')">somethingelse</a>', {raw: true});
    }, {
        greetings: "Welcome!\n",

        onInit: function(terminal) {
            window.terminal = terminal;
            terminal.echo('Welcome!');
        },
        prompt: '> '
    });
});

关于javascript - jQuery - 如何在另一个范围内调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30419916/

相关文章:

jquery - 根据授权角色创建固定值 "string field"?

javascript - ThreeJS 理解灯在哪里

jquery - 如何使移动设备的菜单从左侧出现

javascript - Ctr + 单击在 ie11 中不起作用

javascript - 正在向归类为扩展 DOM 元素的元素添加方法

javascript - Phonegap iOS jquery 固定 header 不起作用

jquery - 如何使用 Jquery AJAX 将 API key 作为请求 header 发布到 API 网关

javascript - 我是否需要担心管理 html5 localStorage 的大小,或者是否会自动删除最近最少使用的项目?

javascript - 如何触发 itemController 中定义的 Emberjs 操作

javascript - 如何在twitter api中的关注按钮回调函数中检索用户详细信息?