忍者。
我想知道两件事。
如何调用函数“Initialize()”和“FillValidateView()”。我在以下代码中编写了要调用这些函数的位置。
我是 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/