如果可能,我想重新加載jQuery prototype
/function
延遲後,而不刷新所有頁面。重新加載當前函數後無時間重新加載頁面
my.prototype.reloadMe = function() {
setTimeout(function(){
my.reloadMe();
},1000);
alert('ok');
};
我試圖在功能setTimeout
但它沒有工作:它refreshs一次。
感謝您的建議或解釋。
如果可能,我想重新加載jQuery prototype
/function
延遲後,而不刷新所有頁面。重新加載當前函數後無時間重新加載頁面
my.prototype.reloadMe = function() {
setTimeout(function(){
my.reloadMe();
},1000);
alert('ok');
};
我試圖在功能setTimeout
但它沒有工作:它refreshs一次。
感謝您的建議或解釋。
在你的代碼定義原型功能,然後嘗試調用它作爲一個目標函數。您應該會看到類似「my.reloadMe()
不是函數」的錯誤。
my.prototype.reloadMe = function() {
setTimeout(function(){
my.reloadMe(); // "my" object does not contain "reloadMe" function
},1000);
alert('ok');
};
如果要訪問此功能,您可以調用這個函數原型:
setTimeout(function(){
my.prototype.reloadMe();
}, 1000);
或實例化對象,並調用該函數:
setTimeout(function(){
new my().reloadMe();
}, 1000);
其中兩個做聽起來不正確。
它看起來像最好的解決方案是命名您的匿名函數:
my.prototype.reloadMe = function reload() {
setTimeout(reload, 1000);
alert('ok');
};);
注1:在你的代碼您使用setTimeOut
,而這是setTimeout
。 JS區分大小寫。也許,它可能是錯誤的來源。
注2:任何此代碼都會使其運行在無限循環中。所以,實際上,你會每秒收到一次警報。我希望這正是你正在努力實現:)
感謝您的回答。這變得很清楚。問題解決了! :) – PSport
//Create your object:
function myobject(){
}
//add prototype to that object
myobject.prototype.reloadMe = function(){
// instead of recursion you can use interval
setInterval(function() {
alert('ok');
}, 1000);
}
// instantiate that object
var my = new myobject();
//call your function
my.reloadMe();
感謝您的解釋。我現在明白了:) – PSport
應該this.reloadMe
得到正確的實例。
my.prototype.reloadMe = function() {
var that = this;
setTimeOut(function(){
that.reloadMe();
}, 1000);
alert('ok');
};
但是,這將是一個無止境的循環。如果你只想再次調用它,你必須打破這個問題。
my.prototype.reloadMe = function() {
var that = this;
if(!that.delayedCalled) {
setTimeOut(function() {
that.delayedCalled = true;
that.reloadMe();
}, 1000);
}
alert('ok');
};
感謝您的解釋,真的很清楚! – PSport
你能告訴我們你的'setTimeout'試試嗎? – eisbehr
'setTimeout'就是你想要的。 「但是id不起作用」 - 嘗試調查它。發生了什麼?控制檯中的任何錯誤? –
我編輯了我的帖子。謝謝 – PSport