使用Javascript从另一个中访问函数
Accessing function from within another with Javascript
我正在尝试让jquery loadmask插件工作,它将屏蔽元素(用于加载内容)。我使用的是knockout.js,如果我在视图模型之外屏蔽一个元素,它就可以工作,但我想在提交POST请求时屏蔽它,然后在收到它时取消屏蔽。我收到了一个"对象没有方法屏蔽"的错误。我不太确定如何设置一个对象来访问它。
这行得通,但不是我想要的。我在代码中注意到,我想从调用掩码
<div id = "register_container">
<div data-bind="visible: register()">
<div id = "register_form"> <!--this is the div I want to mask -->>
<button data-bind="click: submitRegistration">Submit</button>
</div>
</div>
</div>
function MyViewModel(){
self.submitRegistration = function(){
//I want to mask here. When I try it says Object[object object] has no method mask
$.post....{
if(data.result == success){
// andunmask here
}
}
}
}
$("#register_form").mask("Waiting..."); //the masking works when I place it here, but it's always enabled and I want it inside the viewmodel where I noted so it only works when the POST request is in process
这很好,但我想从我注意到的视图模型内部屏蔽一些东西。我怎样才能做到这一点?
我发现了一些问题。
首先,您在if
语句中进行赋值,而不是比较。使用这个替代:
if(data.result == success){
甚至
if(data.result === success){
其次,我不太理解您的代码self.submitRegistration(){
,它通常看起来更像这样:
var MyViewModel = function () {
var self = this;
self.submitRegistration = function() {
};
};
然后,如果我模拟$.post
调用,它的工作方式如下:
var MyViewModel = function () {
var self = this;
self.register = ko.observable(true);
self.submitRegistration = function() {
$("#register_form").mask("Waiting...");
// Mock $.post
window.setTimeout(function () {
if (1 == 1) {
// andunmask here
$("#register_form").unmask();
}
}, 3000);
}
};
ko.applyBindings(new MyViewModel());
请看这把小提琴的演示。
你甚至可以让Knockout帮助你找到要寻找的元素:
看看这个更新的小提琴的演示。
// Use the "event" parameter to find the element...
self.submitRegistration = function(data, event) {
$(event.target).closest('#register_form').mask("Waiting...");
希望能有所帮助。
相关文章:
- 访问函数外部的变量
- 从嵌套函数访问函数属性
- 访问函数对象的上下文属性|如何
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 访问函数中的函数名称
- 访问函数'的属性
- 访问函数内部的Polymer方法
- 从另一个文件访问函数的返回值
- 如何从AngularJS外部访问函数
- 如何在 JavaScript 中访问函数中的其他属性值作为对象属性值
- 从require()'d文件访问函数
- 如何访问函数中的变量
- JavaScript 访问函数构造函数中的“this”
- 跨不同作用域访问函数
- 访问函数内部的变量
- jQuery插件+AMD=如何访问函数
- 如何在javascript中访问函数内部的相同变量名
- 可以'无论我做什么,都无法访问函数外的数组
- 如何从module.exports访问函数
- 无法't访问函数中的对象