Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在JSFIDLE中工作,但在我的页面上不工作_Javascript_Jquery Mobile - Fatal编程技术网

Javascript在JSFIDLE中工作,但在我的页面上不工作

Javascript在JSFIDLE中工作,但在我的页面上不工作,javascript,jquery-mobile,Javascript,Jquery Mobile,我真的是一个Javascript初学者,刚刚开始使用Jquery mobile 我的问题是,我在JSFIDLE中有一个工作示例,但当我将其复制到我的页面时,它就不再工作了。 在JSFIDLE中,只有当我在菜单中选择“onLoad”选项时,它才起作用。所以我猜我把脚本放错了,或者我必须在加载页面时再次调用它 我用$(document).ready(function(){})包装函数和$(函数(){})因为我读过这篇文章,所以在加载站点时会启动脚本 在jquerymobile中是否有包装代码的方法?

我真的是一个Javascript初学者,刚刚开始使用Jquery mobile

我的问题是,我在JSFIDLE中有一个工作示例,但当我将其复制到我的页面时,它就不再工作了。 在JSFIDLE中,只有当我在菜单中选择“onLoad”选项时,它才起作用。所以我猜我把脚本放错了,或者我必须在加载页面时再次调用它

我用
$(document).ready(function(){})包装函数
$(函数(){})因为我读过这篇文章,所以在加载站点时会启动脚本

在jquerymobile中是否有包装代码的方法?还是我在Javascript基础中犯了错误

非常感谢, 斯文

以下是一个例子:

这是页面:

<!DOCTYPE html> 
<html> 
<head> 
<title>Page Title</title> 

<meta name="viewport" content="width=device-width, initial-scale=1"> 

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>
<script type="text/javascipt">
    $(function(){
        $("#slider").bind("change", function(event, ui) {
            alert("test");
        });
    });
</script>
</head> 
<body>

    <div data-role="page">
        <div data-role="content">    
            <p>Page content goes here.</p>
            <div data-role="fieldcontain">
                <label for="slider">Input slider:</label>
                <input type="range" name="slider" id="slider" value="0" min="0" max="255" />
        </div>    
        </div><!-- /content -->
    </div><!-- /page -->

</body>
</html>

页面标题
$(函数(){
$(“#滑块”).bind(“更改”,函数(事件,用户界面){
警报(“测试”);
});
});
页面内容在这里

输入滑块:
在jQuery Mobile中,您不应该使用
$(document).ready()

请尝试绑定pagecreate:

$('#pageID').live('pagecreate', function(){ /*code*/ });

#pageID
加载完毕并被jQuery Mobile增强后,将触发此功能。

您的代码看起来正常。是否可以尝试注释掉函数包装器

$(function(){
    $("#slider").bind("change", function(event, ui) {
        alert("test");
    });
});
对此

//$(function(){
    $("#slider").bind("change", function(event, ui) {
        alert("test");
    });
//});

Naning是对的,更多细节请参见本文


只是一个暗箱操作,但您可能会发现
$(窗口)。load(
(而不是
$(文档)。ready(
可以工作。也许可以,但我的猜测是,这是jquery和设备的问题。请注意jquery文件名称中的字母“rc”。“Release candidate”表示“可能工作,可能不工作。”我的下一步调查将是为#slider硬编码一个onclick处理程序,看看它是否有效。如果有效,那么它似乎表明jquery在您的设备上没有完全工作。可能它与bind方法不兼容,bind方法依赖于某些底层DOM方法,如addEventListener,可能您的设备不支持我喜欢这些。