如何调整 JSFiddle 中的代码以在浏览器中工作?

How can I adapt code from a JSFiddle to work in a browser?

我修改了现有的 JSFiddle 并将其分叉。我正在尝试将此代码转换为 MVC 应用程序中的 .cshtml。我读过类似的问题,这表明问题的发生是因为人们没有使用 Onload 或 $document.ready()。我不相信我的情况会是这样。

我的文档头部是这样的:

    <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/start/jquery-ui.css" />
    <link rel="stylesheet" href="~/CSS/slider.css" />

    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    @*<script src="http://ajax.microsoft.com/ajax/jquery.ui/1.8.5/jquery-ui.min.js"></script>*@

CSS 是一个外部文件,看起来像这样:

.slide {
    margin-top: 20px;
    margin-left: 20px;
    width: 400px;
    background: red;
}
.slide-back {
    position:absolute;
    height:100%;
 }

$document.ready() 的Javascript代码如下。

    <script>
    $(document).ready(function () {


        var doUpdate = function (event, ui) {
            alert('doUpdate1'); //This fires. 

            $('#slide1 .slide-back').remove();
            $($('#slide1 a').get().reverse()).each(function (i) {
                var bg = '#fff';
                if (i == 1) {
                    bg = '#00f';
                } else if (i == 2) {
                    bg = '#0f0';
                } else if (i == 3) {
                    bg = '#f00';
                } else if (i == 4) {
                    bg = '#0ff';
                }

                $('#slide1').append($('<div></div>').addClass('slide-back').width($(this).offset().left - 5).css('background', bg));

            });
        };

        $('#slide1').slider({
            slide: doUpdate,
            change: doUpdate,
            min: 0,
            max: 1000,
            values: [200, 500, 800]
        });

        doUpdate();
    });
</script>

我试过将这段代码放在页面的头部和正文部分。每次加载页面时,都会触发警报,但是当滚动条出现时,它是一种普通的灰色,滑块上只有一个旋钮。在 JSFiddle 中,彩色滑块上有三个旋钮。

我想我可能遗漏了对 JQueryUI 的引用,所以我将其添加到我的脑海中。

<script src="http://ajax.microsoft.com/ajax/jquery.ui/1.8.5/jquery-ui.min.js"></script>

这只会让事情变得更糟。当我在那里时,我得到一个空白页面,控制台中没有错误。我不知道我还需要什么。谁能告诉我哪里出错了?

可以找到 JSFiddle Here

在 运行 启用 fiddle 之前,打开您的开发者工具 (F12) 并切换到网络选项卡...当您 运行 fiddle 时,一个一堆文件将被下载。您可能希望将这些文件添加到您的 HTML。至少其中一些。

JSFiddle 没有什么特别之处;如果你没有得到相同的结果,这意味着有些东西是不同的。这通常是由于各种插件的不同版本之间不兼容造成的。您可以通过检查 F12 Developer Tools.

的 'Network' 选项卡来找出他们使用的特定版本的插件

例如,JSFiddle 使用 jQuery 的 1.4.4 版本:

http://code.jquery.com/jquery-1.4.4.min.js

而您使用的是 1.11.3(除了加载 jQuery Mobile 1.4.5):

https://code.jquery.com/jquery-1.11.3.min.js
https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js

JSFiddle 确实也使用 jQuery UI
(即 1.8.5,与您的版本相同,尽管来源不同):

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js

删除您的 jQuery 移动参考,并切换到 jQuery 1.4.4 可能会解决您的问题。

希望对您有所帮助! :)