1

ページのその部分を処理する別のプラグインがすでにあるので、jqueryモバイルからページの一部をエスケープしようとしていますturn.jsですが、エスケープできないようです...これは別のものによって処理される動的divにありますjquery プラグイン。ここにフィドルがあります: http : //jsfiddle.net/adamsurfari/DpQQV/

私はすでに使用しています

<div data-enhance="false" data-role="none" id="flipbook">
</div>

しかし、画像はまだ表示されません。jquery mobile から div とその内部をエスケープする別の方法はありますか?

ページの構成:

<title></title>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

    <script type="text/javascript" src="zip/zip.js"></script>
    <script type="text/javascript" src="zip/deflate.js"></script>
    <script type="text/javascript" src="zip/zip-ext.js"></script>


    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

    <script>
        $(document).on('mobileinit', function () {
            $.mobile.ignoreContentEnabled = true;
        });
    </script>

    <script type="text/javascript" src="turn.js"></script>

これは、turn.js からの通常の出力です。

<div data-enhance="false" id="flipbook"
     style="position: relative; width: 1024px; height: 360px; -webkit-transform: translate3d(0px, 0px, 0px);">
    <div class="turn-page-wrapper" page="1"
         style="position: absolute; overflow: hidden; width: 512px; height: 360px; top: 0px; right: 0px; left: auto; bottom: auto; z-index: 56;">
        <div style="position: absolute; top: 0px; left: 0px; overflow: hidden; z-index: auto; width: 626px; height: 626px; -webkit-transform-origin: 0% 100%;">
            <div data-enhance="false" class="turn-page p1"
                 style="width: 512px; height: 360px; position: absolute; top: 0px; left: 0px; bottom: auto; right: auto; -webkit-transform-origin: 0% 100%;">
                <img width="512px" src="filesystem:http://localhost:8080/persistent/LEGO/CATALOGO%202013_001.jpg"></div>
        </div>
        <div style="top: 0px; left: 0px; overflow: hidden; z-index: 1; width: 512px; height: 360px; background-image: -webkit-gradient(linear, 100% 100%, 100% 100%, color-stop(0.8, rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.298039)), to(rgba(0, 0, 0, 0))); display: none;"></div>
    </div>
    <div style="pointer-events: none; position: absolute; top: -50px; left: -8px; overflow: visible; z-index: auto; display: none;">
        <div style="position: absolute; top: 50px; left: 520px; overflow: hidden; z-index: 56; width: 626px; height: 626px; -webkit-transform-origin: 0% 100%; -webkit-transform: translate3d(512px, -266px, 0px) rotate(-90deg); display: none;">
            <div style="position: absolute; top: auto; left: 0px; overflow: visible; z-index: auto; width: 512px; height: 360px; right: auto; bottom: 0px; -webkit-transform-origin: 0% 100%; -webkit-transform: rotate(90deg) translate3d(0px, 360px, 0px);">
                <div style="cursor: default; width: 360px; height: 512px; -webkit-transform-origin: 0% 0%; -webkit-transform: rotate(-90deg);">
                    <div data-enhance="false" class="turn-page p2"
                         style="width: 512px; height: 360px; -webkit-transform-origin: 0% 0%;">
                        <div class="turn-page p4" style="width: 200px; height: 300px;"> Page 2</div>
                    </div>
                    <div style="position: absolute; top: 0px; left: 0px; overflow: hidden; z-index: 1; width: 360px; height: 512px; background-image: -webkit-gradient(linear, 0% 0%, 0% 0%, from(rgba(0, 0, 0, 0)), color-stop(0.8, rgba(0, 0, 0, 0.2)), to(rgba(255, 255, 255, 0.2)));"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="turn-page-wrapper" page="2"
         style="position: absolute; overflow: hidden; width: 512px; height: 360px; top: 0px; left: 0px; right: auto; bottom: auto; z-index: 0; display: none;"></div>
    <div class="turn-page-wrapper" page="3"
         style="position: absolute; overflow: hidden; width: 512px; height: 360px; top: 0px; right: 0px; left: auto; bottom: auto; z-index: 55;">
        <div data-enhance="false" class="turn-page p3" style="width: 512px; height: 360px;">
            <div class="turn-page p4" style="width: 200px; height: 300px;"> Page 3</div>
        </div>
    </div>

これは、data-enhanced="false" を指定した jquerymobile の出力です。jquerymobile は、data-enhanced="false" DIV 内のコードをいじっています。

<div data-enhance="false" id="flipbook"
     style="position: relative; width: 400px; height: 300px; -webkit-transform: translate3d(0px, 0px, 0px);">
    <div class="turn-page-wrapper ui-page ui-body-c" tabindex="0"
         style="position: absolute; overflow: hidden; width: 200px; height: 300px; top: 0px; right: 0px; left: auto; bottom: auto; z-index: 8;">
        <div style="position: absolute; top: 0px; left: 0px; overflow: hidden; z-index: auto; width: 361px; height: 361px; -webkit-transform-origin: 0% 100%;">
            <div class="hard turn-page p1"
                 style="width: 200px; height: 300px; position: absolute; top: 0px; left: 0px; bottom: auto; right: auto; -webkit-transform-origin: 0% 100%;">
                Turn.js
            </div>
        </div>
        <div style="top: 0px; left: 0px; overflow: hidden; z-index: 1; width: 200px; height: 300px; background-image: -webkit-gradient(linear, 100% 100%, 100% 100%, color-stop(0.8, rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.298039)), to(rgba(0, 0, 0, 0))); display: none;"></div>
    </div>
    <div style="pointer-events: none; display: none; position: absolute; top: -193.1875px; left: -15px; overflow: visible; z-index: auto;">
        <div style="position: absolute; top: 193.1875px; left: 215px; overflow: hidden; z-index: 8; display: none; width: 361px; height: 361px; -webkit-transform-origin: 0% 100%; -webkit-transform: translate3d(200px, -61px, 0px) rotate(-90deg);">
            <div style="position: absolute; top: auto; left: 0px; overflow: visible; z-index: auto; width: 200px; height: 300px; right: auto; bottom: 0px; -webkit-transform-origin: 0% 100%; -webkit-transform: rotate(90deg) translate3d(0px, 300px, 0px);">
                <div style="cursor: default; width: 300px; height: 200px; -webkit-transform-origin: 0% 0%; -webkit-transform: rotate(-90deg);">
                    <div style="position: absolute; top: 0px; left: 0px; overflow: hidden; z-index: 1; width: 300px; height: 200px; background-image: -webkit-gradient(linear, 0% 0%, 0% 0%, from(rgba(0, 0, 0, 0)), color-stop(0.8, rgba(0, 0, 0, 0.2)), to(rgba(255, 255, 255, 0.2)));"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="turn-page-wrapper ui-page ui-body-c" tabindex="0"
         style="position: absolute; overflow: hidden; width: 200px; height: 300px; top: 0px; left: 0px; right: auto; bottom: auto; z-index: 0; display: none;">
        <div class="hard turn-page p2" style="width: 200px; height: 300px; -webkit-transform-origin: 0% 0%;"></div>
    </div>
    <div class="turn-page-wrapper ui-page ui-body-c" tabindex="0"
         style="position: absolute; overflow: hidden; width: 200px; height: 300px; top: 0px; right: 0px; left: auto; bottom: auto; z-index: 7;">
        <div id="page1-test" class="turn-page p3" style="width: 200px; height: 300px;"> Page 1 <a href="#"
                                                                                                  data-role="button"
                                                                                                  id="test-button">Dynamic
            Button</a></div>
    </div>
    <div class="turn-page-wrapper ui-page ui-body-c" tabindex="0"
         style="position: absolute; overflow: hidden; width: 200px; height: 300px; top: 0px; left: 0px; right: auto; bottom: auto; z-index: 0; display: none;">
        <div class="turn-page p4" style="width: 200px; height: 300px;"> Page 2</div>
    </div>
    <div class="turn-page-wrapper ui-page ui-body-c" tabindex="0"
         style="position: absolute; overflow: hidden; width: 200px; height: 300px; top: 0px; right: 0px; left: auto; bottom: auto; z-index: 0; display: none;">
        <div class="turn-page p5" style="width: 200px; height: 300px;"> Page 3</div>
    </div>

ご覧のとおり、jqueryMobile はまだ div 内のコードをいじっています。

例えば:

<div class="turn-page-wrapper" page="1"

次のように変換されます。

<div class="turn-page-wrapper ui-page ui-body-c" tabindex="0"
4

1 に答える 1

3

修理:

これを変える:

    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

    <script>
        $(document).on('mobileinit', function () {
            $.mobile.ignoreContentEnabled = true;
        });
    </script>

    <script type="text/javascript" src="turn.js"></script>

これに:

    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script>
        $(document).on('mobileinit', function () {
            $.mobile.ignoreContentEnabled = true;
        });
    </script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>    
    <script type="text/javascript" src="turn.js"></script>

jquery Mobile を初期化する前に、 mobileinitを初期化する必要があります。

例:

作業例: http://jsfiddle.net/Gajotres/UZwpj/

HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>jQM Complex Demo</title>
        <meta name="viewport" content="width=device-width"/>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <script src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>           
        <script>
            $(document).on('mobileinit', function () {
            $.mobile.ignoreContentEnabled = true;
            });
        </script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>    
    </head>
    <body>
        <div data-role="page" id="index">
            <div data-theme="a" data-role="header" data-enhance="false">
                <h3>
                    First Page
                </h3>
                <a href="#second" class="ui-btn-right">Next</a>
            </div>

            <div data-role="content">
                <a href="#" data-role="button" id="test-button">Test button</a>
                <!-- Every content inside this div will not be enhanced -->
                <div data-enhance="false">
                    <a href="#" data-role="button" id="test-button">Test button</a>                
                    <div>
                        <a href="#" data-role="button" id="test-button">Test button</a>                
                    </div>                
                </div>
                <a href="#" data-role="button" id="test-button">Test button</a>
            </div>

            <div data-theme="a" data-role="footer" data-position="fixed" data-enhance="false">
                <h3>
                    Footer
                </h3>
            </div>
        </div>   
    </body>
</html>    

編集:

data-enhance="false" は、ファイルからロードされたコンテンツに対してのみ機能するため、動的に追加されたコンテンツに対して可能な唯一の解決策は、data-role="none" 属性です。

例: http://jsfiddle.net/Gajotres/eUH56/

于 2013-04-08T13:19:49.433 に答える