javascript - jquery 移动转义页面 <div> 的一部分(动态创建)

标签 javascript jquery-mobile jquery markup

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

我已经在用了

<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"

最佳答案

修复:

改变这个:

    <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>

mobileinit 必须在 jquery Mobile 初始化之前初始化。

示例:

工作示例: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/

关于javascript - jquery 移动转义页面 <div> 的一部分(动态创建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879556/

相关文章:

javascript - 谷歌地图信息窗口无法正确显示,但当我打开 firbug 时,它运行良好

javascript - 为什么 obj.a = ( obj.a || [] ).push( 10 ) 使 obj.a 成为类型编号

javascript - 为什么 console.log((!+[]+[]+![]).length) 给出 9?

javascript - RegEx - 查找模式之间的字符串

javascript - 如何在 jQuery Mobile 中正确定位元素?

javascript - 我的应用程序无法识别 DateTimePicker

javascript - 无法使用网络服务显示记录

javascript - jQuery Mobile - 面板问题 - 第二次单击时未打开

javascript - 如何阅读这个 JSON?

javascript - 在每个循环中执行 ajax 调用