1

一直试图从 jquery mobile 转义页面的一部分,因为我已经有一个不同的插件处理页面 turn.js 的该部分,但我似乎无法逃脱它......这是在另一个处理的动态 div 上jQuery插件。这是一个小提琴: http: //jsfiddle.net/adamsurfari/DpQQV/这就是翻书应该如何工作http://jsfiddle.net/blasten/A9a7E/

我已经在使用

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

但图像仍然没有出现。是否有不同的方式来逃避 div 以及 jquery mobile 中的内容?

页面配置:

<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-role="none" 属性,因为 data-enhance="false" 仅适用于从文件加载的内容。

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

于 2013-04-08T13:19:49.433 回答