- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在搜索这个,因为它让我很头疼,无法实现这个……而且似乎没有我预期的解决方案。
假设我们有一个示例 PHP
类:
<?php
class SampleClass {
function doA() {
echo 'Hello world';
}
function doB() {
$sampleArray = ['Hey', 'You'];
foreach( $sampleArray as $key => $value ) {
self::doA();
}
}
}
?>
由于 foreach 循环,此代码将回显 Hello World
两次。那很好。
现在我有了这个脚本
:
function SectionHandler($appWrap) {
this.appWrap = $appWrap;
this.loading = function() {
this.appWrap.addClass('section-loading').html("<i class='fa fa-refresh fa-2x fa-spin'></i>");
}
this.setError = function($info) {
this.appWrap.addClass('section-error').html($info);
}
this.load = function($section) {
var $fileCheck = $.get($section).success(function(){
self.loading();
self.load($section);
}).fail(function(){
self.setError('No se pudo cargar los datos especificados desde ' + $section + ' ;');
});
}
}
我相信 this.loading()
不再指向 main 函数,因为 $.get().success()
函数。我不知道真正的原因。
问题是 this.loading()、this.load()、this.setError()
都不起作用。
那么,我该怎么做才能像使用 PHP self::
函数一样指向主函数。?
正如@Eclecticist 指出的那样,this.load($section);
行将一直执行到失败或出现错误为止,我将整个检查更改为:
var $fileCheck = $.get($section).done(function(response){
self.appWrap.html(response);
}).fail(function(){
self.setError('No se pudo cargar los datos especificados desde ' + $section);
});
最佳答案
试试这个:
function SectionHandler($appWrap) {
var that = this;
this.appWrap = $appWrap;
this.loading = function() {
that.appWrap.addClass('section-loading').html("<i class='fa fa-refresh fa-2x fa-spin'></i>");
}
this.setError = function($info) {
that.appWrap.addClass('section-error').html($info);
}
this.load = function($section) {
var $fileCheck = $.get($section).success(function(){
that.loading();
that.load($section);
}).fail(function(){
that.setError('No se pudo cargar los datos especificados desde /[ ' + $section + ' ]\ ;');
});
}
}
问题是一旦您进入函数内部,this
的值就会发生变化。您可以通过在主函数 that
中声明一个变量来解决这个问题,稍后再引用它。
--编辑--
我要注意 that.load($section);
行将递归调用 SectionHandler.load()
直到 AJAX 请求失败,或者直到您得到一个 stackoverflow
错误。
是的,我一直希望能出现一些可以引用该错误的东西:)
关于JavaScript - 等同于 PHP 类 self::,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28390741/
判断这2个相似的Uris实际上相同的标准方法是什么? var a = new Uri("http://sample.com/sample/"); var b = new Uri("http://sam
这个问题在这里已经有了答案: Why does "true" == true show false in JavaScript? (5 个答案) 关闭 5 年前。 可能我很困惑,但我无法理解这个愚蠢
我是一名优秀的程序员,十分优秀!