簡體   English   中英

代碼不在JSFiddle中運行,但可以在現場運行

[英]code not running in JSFiddle but working on site

我試圖獲得另一個問題的答案,希望添加功能正常的JSFiddle會給我一些答復。 我正在這里制作小提琴:

JSFiddle

但這給了我錯誤,盡管實際上在我的網站上運行,卻沒有執行。

當我運行JSHint時,它表明我在JS的第一行中缺少分號,而事實並非如此。

這兩個外部文件都可以訪問,我可以單擊它們,然后它們會在瀏覽器中彈出。

JSFiddle頁面上的控制台返回此500內部服務器錯誤:

GET http://jobs.jsfiddle.net/random.js?callback=Request.JSONP.request_map.request_0 500 (Internal Server Error) moo-clientcide-1.3.js?jobofferinsidebar:3146
inserters.bottom moo-clientcide-1.3.js?jobofferinsidebar:3146
Element.implement.inject moo-clientcide-1.3.js?jobofferinsidebar:3409
Request.JSONP.Class.send moo-clientcide-1.3.js?jobofferinsidebar:12590
wrapper.extend.$owner moo-clientcide-1.3.js?jobofferinsidebar:3798
Class.showJobs Sidebar.js?jobofferinsidebar:60
wrapper.extend.$owner moo-clientcide-1.3.js?jobofferinsidebar:3798
Class.initialize Sidebar.js?jobofferinsidebar:34
(anonymous function) moo-clientcide-1.3.js?jobofferinsidebar:5865
wrapper.extend.$owner moo-clientcide-1.3.js?jobofferinsidebar:3798
(anonymous function) moo-clientcide-1.3.js?jobofferinsidebar:3756
Layout.render LayoutCM.js?jobofferinsidebar:49
(anonymous function) (index):111
(anonymous function) moo-clientcide-1.3.js?jobofferinsidebar:4624
(anonymous function) moo-clientcide-1.3.js?jobofferinsidebar:212
Array.implement.each moo-clientcide-1.3.js?jobofferinsidebar:329
invoke.fireEvent moo-clientcide-1.3.js?jobofferinsidebar:4622
domready

在我看來這就像一個jsfiddle問題。 這是js代碼,但我確定可以。

var i = 0;
var image_slide = new Array('image-1','image-2','image-3');
var NumOfImages = image_slide.length;
var wait = 8000;

function SwapImage(x,y) {       
    $(image_slide[x]).appear({ duration: 1 });
    $(image_slide[y]).fade({duration: 1});
}

function StartSlideShow() {
    play = setInterval('Play()',wait);  
}

function Play() {
    var imageShow, imageHide;

    imageShow = i+1;
    imageHide = i;

    if (imageShow == NumOfImages) {
        SwapImage(0,imageHide); 
        i = 0;                  
    } else {
        SwapImage(imageShow,imageHide);         
        i++;
    }
}

任何想法為什么這將不執行?

play = setInterval('Play()',wait);

您應該為setInterval()的第一個參數傳遞一個函數

play = setInterval(Play,wait);

這是固定的演示

只需在StartSlideShow函數中刪除Play()周圍的引號即可: http : //jsfiddle.net/jb8Nx/1/

function StartSlideShow() {
    play = setInterval(Play(),wait);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM