0

私はこのイベントキャッチャーを持っています:

    WLJQ('button#refreshBte').bind('click', function() {
        console.log("start refresh...");
    });

誰かが私に理由を説明できますか?

で動作します:

    <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props='fixed:"top"'>
        Header
    </div>
    <button id="refreshBte" data-dojo-type="dojox.mobile.Button"
            style="float: right">Refresh</button>

と動作しません:

    <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props='fixed:"top"'>
        Header
        <button id="refreshBte" data-dojo-type="dojox.mobile.ToolBarButton"
            style="float: right">Refresh</button>
    </div>

ToolBarButtonをボタンに置​​き換えても同じではありません。

どうも


編集:それが私のために働いていなかったので、私は単純なWLプロジェクトを作成し、見出しとツールバーボタンを追加しました、ここにhtml:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<meta name="viewport"
    content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="shortcut icon" href="images/favicon.png">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
<link rel="stylesheet" href="css/Test.css">
<script>
    window.$ = window.jQuery = WLJQ;
</script>
<script type="text/javascript"
    data-dojo-config="isDebug: false, async: true, parseOnLoad: true, mblHideAddressBar: false"
    src="dojo/dojo.js"></script>
</head>
<body id="content" style="display: none;">
    <div data-dojo-type="dojox.mobile.ScrollableView" id="view0"
        data-dojo-props="selected:true">
    <div data-dojo-type="dojox.mobile.Heading"
        data-dojo-props="label:'Heading'">
            <button data-dojo-type="dojox.mobile.ToolBarButton" id="refreshBte">Label</button>
        </div>

    </div>
    <!--application UI goes here-->
    <script src="js/initOptions.js"></script>
    <script src="js/Test.js"></script>
    <script src="js/messages.js"></script>
</body>
</html>

「ページデザイナー」には見出しとツールバーが表示されますが、Androidエミュレーターで実行すると、黒い画面が表示されます。何か案が?

4

1 に答える 1

1

おそらく、JQuery 構文を使用してイベントをバインドしているからでしょうか?

この Dojo コードを使用すると、同じマークアップがうまく機能します。

require([
    "dojo/ready",
    "dijit/registry"
], function(ready, registry){
    ready(function(){
        registry.byId("refreshBte").on("click", function(){
            console.log("start refresh...");
        });
    });
});
于 2013-03-14T16:34:35.543 に答える