【发布时间】:2015-02-08 04:59:16
【问题描述】:
所以我一直在寻找这个,因为无法实现这一点让我很头疼......而且似乎没有我期望的解决方案。
假设我们有一个示例 PHP 类:
<?php
class SampleClass {
function doA() {
echo 'Hello world';
}
function doB() {
$sampleArray = ['Hey', 'You'];
foreach( $sampleArray as $key => $value ) {
self::doA();
}
}
}
?>
由于 foreach 循环,此代码将回显 Hello World 两次。这很好。
现在我有这个script:
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);
});
【问题讨论】:
-
也许这会有所帮助:javascriptkata.com/2007/05/14/…
-
@Mark 我一直在思考这个问题,以至于我无法猜到那个......现在我觉得自己很愚蠢呵呵......非常感谢。
标签: javascript php