Jquery 库不能与 sencha touch 一起使用?

Posted

技术标签:

【中文标题】Jquery 库不能与 sencha touch 一起使用?【英文标题】:Jquery library not working with sencha touch? 【发布时间】:2012-10-17 09:39:55 【问题描述】:

我目前正在构建一个基于 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>

【问题讨论】:

我认为它们应该是兼容的 - 我真的不明白为什么它不能真正工作,因为我正在做一个如此简单的 jquery 调用 我认为当你被 Sencha 困住时最好寻求帮助,而不是试图让它与 jQuery 一起工作。这两个框架都很重,而且做的事情几乎一样。 也许——但我需要从 jquery 库中获取一些基本的小东西来完成这项工作。 【参考方案1】:

也许您正在点击的元素没有 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 元素组成。

希望对你有帮助

【讨论】:

以上是关于Jquery 库不能与 sencha touch 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

Sencha vs. jQuery Touch [关闭]

Sencha Touch 向 jQuery 发送信号

Sencha Touch 2 : JQuery 脚本标签

sencha touch 是比 jquery mobile 或 Jqtouch 更好的选择吗? [关闭]

使用 sencha touch 的图像库

任何人都可以区分 sencha touch、jquery mobile 和 phonegap 吗? [关闭]