javascript - 如何在自己的函数内部调用该函数

标签 javascript jquery html

忍者。

我想知道两件事。

  1. 如何调用函数“Initialize()”和“FillValidateView()”。我在以下代码中编写了要调用这些函数的位置。

  2. 我是 JavaScript 编程新手。我想知道下面的代码是否可以正确实现页面转换。

HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <div id="header">
        <p></p>
    </div>

    <div id="main">
        <div id="validate_or_import">
            <input type="button" id="go_validate" value="Validate Data">
            <inp ut type="button" id="go_import" value="Import Data">
        </div>
    </div>

</body>
</html>

JavaScript

$(function () {

    var View = function () {
        this.title = ''
    };

    View.prototype = {
        Initialize: function () {
            this.title = '';
            this.tiles = [];
            $('#main').children().hide();
        },
        Render: function () {
            $('#header p').html(this.title);
            jQuery.each(this.tiles, function () {
                this.show();
            });
        },
        FillFirstView: function () {
            this.title = 'Select what you want';
            this.tiles.push($('#validate_or_import'));
            $('#go_validate').on('click', function () {
                // I want to call 'Initialize()' and 'FillValidateView()' here!!!!!
            });
            $('#go_import').on('click', function () {
                alert('Not implemented yet');
            });
        },
        FillValidateView: function () {
            this.title = 'Validate data';
            //I will write more about this view
        }
    };

    var view = new View();
    view.Initialize();
    view.FillFirstView();
    view.Render();

});

最佳答案

(1) 这有点棘手,因为 this 的值不是回调中的原始对象。你可以这样做:

var that = this;
$('#go_validate').on('click', function () {  
  that.Initialize();  
});

或者:

$('#go_validate').on('click', (function() {
  this.Initialize();
}).bind(this));

this 关键字中的更多信息:How does the "this" keyword work?

关于javascript - 如何在自己的函数内部调用该函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18143762/

相关文章:

html - SVG clipPath 没有正确剪裁

javascript - W3C 错误 : document type does not allow element X here; missing one of Y start-tag

javascript - 在鼠标悬停时突出显示文本行

Javascript 正则表达式在 IE 中不起作用

javascript - TypeError : data. forEach 不是函数

html - 为什么 td 文本颜色没有改变

javascript - 当值太小时,high-charts datalabel 位置需要改变

javascript - Protractor 找不到 Angular

javascript - 我可以使用 Chrome 开发工具来衡量网络 worker 的表现吗?

javascript - 具有不同内容的 JQuery 可重用对话框