2

我目前正在构建一个基于 Sencha Touch 2 的移动应用程序。目前我只是在尝试一些实验来看看 Sencha 也有什么能力。

今天我遇到了一件看起来很奇怪的事情——我只是想尝试一下是否可以将 jQuery 库用于我的应用程序并使用它的附加功能。

最奇怪的是,当我制作 jquery 函数时,我无法得到任何响应。

我已经将 jquery 库和我的脚本包含在我的 sencha 目录中的 index.html 文件中,我只是制作了一个简单的愚蠢测试脚本,看看它是否有效 - 但是当我尝试它时我根本没有得到任何反应在浏览器中。我可以看到该库和脚本是通过 firebug 包含的。(如您所见,我的 jquery 测试只是一个简单的单击事件,应该显示一个 div,但它不是)。

我是不是很愚蠢-或者我在这里错过了什么?

这是我的 index.html 文件

<!DOCTYPE HTML>
<html manifest="" lang="en-US">
<head>
<meta charset="UTF-8">
<title>scroller</title>

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function() {

        $("#show_me").click(function () {
            $('#magic').slideDown('slow');
        });

    });

</script>


<link rel="stylesheet" href="resources/css/sencha-touch.css" type="text/css">
<style type="text/css">
     /**
     * Example of an initial loading indicator.
     * It is recommended to keep this as minimal as possible to provide instant feedback
     * while other resources are still being loaded for the first time
     */
    html, body {
        height: 100%;
        background-color: #1985D0
    }

    #appLoadingIndicator {
        position: absolute;
        top: 50%;
        margin-top: -15px;
        text-align: center;
        width: 100%;
        height: 30px;
        -webkit-animation-name: appLoadingIndicator;
        -webkit-animation-duration: 0.5s;
        -webkit-animation-iteration-count: infinite;
        -webkit-animation-direction: linear;
    }

    #appLoadingIndicator > * {
        background-color: #FFFFFF;
        display: inline-block;
        height: 30px;
        -webkit-border-radius: 15px;
        margin: 0 5px;
        width: 30px;
        opacity: 0.8;
    }

    @-webkit-keyframes appLoadingIndicator{
        0% {
            opacity: 0.8
        }
        50% {
            opacity: 0
        }
        100% {
            opacity: 0.8
        }
    }
</style>
<!-- The line below must be kept intact for Sencha Command to build your application -->
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=true"></script>
<!-- script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script--->
<script id="microloader" type="text/javascript" src="sdk/microloader/development.js"></script>
<!--<script type="text/javascript" src="app.js"></script>-->
<script type="text/javascript" src="js/cordova-1.7.0.js"></script>
<script type="text/javascript" src="js/phonegap_shortcuts.js"></script>
<script type="text/javascript" src="js/maps.js"></script>
<script type="text/javascript" src="js/zepto.min.js"></script>
<script type="text/javascript" src="js/filters.js"></script>
<script type="text/javascript" src="js/proxy.js"></script>
<!--<script type="text/javascript" src="js/index.js"></script>-->
<!--
<script type="text/javascript">
    document.addEventListener("deviceready", app.mainLaunch, false);
</script>
-->
<script type="text/javascript">
    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;
    }
    function PictureSourceType() {};
    PictureSourceType.PHOTO_LIBRARY = 0;
    PictureSourceType.CAMERA = 1;
    //var ja = phonegap.shortcuts.getLocation();
    //console.log('ja:'+ja);
    document.addEventListener("deviceready", onDeviceReady, false);
</script>
    </head>
    <body>
    <div id="appLoadingIndicator">
    <div></div>
    <div></div>
    <div></div>
    </div>
    </body>
    </html>
4

1 回答 1

0

也许您单击的元素没有 id 'showme'。这可能是因为您创建的按钮在 Sencha 中具有 id 'showme',但实际呈现的 HTML 包含另一个 id。

如果这是真的(当然你可以使用 FireBug 来检查),你可能想听按钮上的 'tap' 事件,而不是使用 jQuery 绑定到 'click' 事件。有关文档,请参阅http://docs.sencha.com/touch/2-0/#!/api/Ext.Button-event-tap

可以将 jQuery 与 Sencha 一起使用,但重要的是要记住 Sencha 中的组件并不是 DOM 中元素的直接表示,Sencha 中的某些组件在渲染时由多个 DOM 元素组成。

希望这可以帮助

于 2012-10-18T00:39:51.720 回答