Jquery 数据iconpos=";“左”;转变为数据iconpos=";对",;当页面呈现时

Jquery 数据iconpos=";“左”;转变为数据iconpos=";对",;当页面呈现时,jquery,html,jquery-mobile,Jquery,Html,Jquery Mobile,这是我的HTML: <body> <ul data-role="listview" data-inset="true" data-iconpos="left" data-theme="content-list-main"> <li data-icon="viewpolicy" data-iconpos="left"><a href="pages/myPolicy/myPolicy.html">View My Policy

这是我的HTML:

 <body>

    <ul data-role="listview" data-inset="true" data-iconpos="left" data-theme="content-list-main">
        <li data-icon="viewpolicy" data-iconpos="left"><a href="pages/myPolicy/myPolicy.html">View My Policy</a></li>
        <li><a class="ui-icon-viewidcards" href="pages/autoVehicles/autoVehicles.html">View Auto ID Cards</a></li>
        <li><a class="ui-icon-paybill" href="pages/payMyBill/payMyBill.html">Pay My Bill</a></li>
        <li><a class="ui-icon-roadside" href="pages/roadside/roadside.html">Roadside/Accident Assistance</a></li>
        <li><a class="ui-icon-claimscenter" href="pages/claimCenter/claimCenter.html">Claim Center</a></li>
    </ul>

</body>

以下是我使用Chrome检查元素时的外观:

<ul data-role="listview" data-inset="true" data-iconpos="left" 
 data-theme="content-list-main" 
  class="ui-listview ui-listview-inset ui-corner-all ui-shadow">
       <li data-icon="viewpolicy" data-iconpos="right" data-corners="false" 
         data-shadow="false" data-iconshadow="true" data-wrapperels="div" 
         data-theme="content-list-main" 
         class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-first-child ui-last-child ui-btn-up-content-list-main">
          <div class="ui-btn-inner ui-li">
             <div class="ui-btn-text">
               <a href="pages/myPolicy/myPolicy.html" class="ui-link-inherit">View My Policy</a>
             </div>
             <span class="ui-icon ui-icon-viewpolicy ui-icon-shadow">&nbsp;</span>
           </div>
        </li>
    </ul>
请注意,由于某些原因,li的属性呈现为数据iconpos=“right”

下面是正在加载的JS文件:

<script src="js/jquery-1.10.2.js"></script>
<script src="js/jquery.mobile-1.3.2.js"></script>

你知道为什么数据iconpos=“left”根本无法坚持吗


谢谢,我找到了问题的根源

在jquery.mobile-1.3.2.js的第6322行,您将发现以下代码块:

if ( create || !item.hasClass( "ui-li" ) ) {
            itemTheme = item.jqmData( "theme" ) || o.theme;
            a = this._getChildrenByTagName( item[ 0 ], "a", "A" );
            var isDivider = ( item.jqmData( "role" ) === "list-divider" );

            if ( a.length && !isDivider ) {
                icon = item.jqmData( "icon" );

                item.buttonMarkup({
                    wrapperEls: "div",
                    shadow: false,
                    corners: false,
                    iconpos: "right",
                    icon: a.length > 1 || icon === false ? false : icon || listicon || o.icon,
                    theme: itemTheme
                });
您可以在第6334行看到iconpos硬编码为“右”。我不知道他们为什么要这样做。我可以理解一个默认值,但正如我所看到的,没有理由使用硬编码值。利用一个简单的变量尝试为li拉取iconpos提供了一个合适的修复

if ( create || !item.hasClass( "ui-li" ) ) {
            itemTheme = item.jqmData( "theme" ) || o.theme;
            a = this._getChildrenByTagName( item[ 0 ], "a", "A" );
            var isDivider = ( item.jqmData( "role" ) === "list-divider" );
            var ipos = item.jqmData("iconpos") || "right";
            if ( a.length && !isDivider ) {
                icon = item.jqmData( "icon" );

                item.buttonMarkup({
                    wrapperEls: "div",
                    shadow: false,
                    corners: false,
                    iconpos: ipos,
                    icon: a.length > 1 || icon === false ? false : icon || listicon || o.icon,
                    theme: itemTheme
                });
我已经用可能的iconpos值和完全缺少属性来测试了这一点,到目前为止,它在所有情况下都能正常工作


请让我知道,如果有人知道为什么该值需要硬编码为“正确”。。。但我很有信心,要使数据iconpos真正正常运行,这种更改是必要的。

我找到了问题的根源

在jquery.mobile-1.3.2.js的第6322行,您将发现以下代码块:

if ( create || !item.hasClass( "ui-li" ) ) {
            itemTheme = item.jqmData( "theme" ) || o.theme;
            a = this._getChildrenByTagName( item[ 0 ], "a", "A" );
            var isDivider = ( item.jqmData( "role" ) === "list-divider" );

            if ( a.length && !isDivider ) {
                icon = item.jqmData( "icon" );

                item.buttonMarkup({
                    wrapperEls: "div",
                    shadow: false,
                    corners: false,
                    iconpos: "right",
                    icon: a.length > 1 || icon === false ? false : icon || listicon || o.icon,
                    theme: itemTheme
                });
您可以在第6334行看到iconpos硬编码为“右”。我不知道他们为什么要这样做。我可以理解一个默认值,但正如我所看到的,没有理由使用硬编码值。利用一个简单的变量尝试为li拉取iconpos提供了一个合适的修复

if ( create || !item.hasClass( "ui-li" ) ) {
            itemTheme = item.jqmData( "theme" ) || o.theme;
            a = this._getChildrenByTagName( item[ 0 ], "a", "A" );
            var isDivider = ( item.jqmData( "role" ) === "list-divider" );
            var ipos = item.jqmData("iconpos") || "right";
            if ( a.length && !isDivider ) {
                icon = item.jqmData( "icon" );

                item.buttonMarkup({
                    wrapperEls: "div",
                    shadow: false,
                    corners: false,
                    iconpos: ipos,
                    icon: a.length > 1 || icon === false ? false : icon || listicon || o.icon,
                    theme: itemTheme
                });
我已经用可能的iconpos值和完全缺少属性来测试了这一点,到目前为止,它在所有情况下都能正常工作


请让我知道,如果有人知道为什么该值需要硬编码为“正确”。。。但我很有信心,要使数据iconpos真正正常运行,这种更改是必要的。

可能是因为在listview的情况下,默认情况是此时正确,表示它已关闭并且可以打开?我不使用jQM,可能是因为在listview的情况下,默认情况下它在该点是正确的,表示它已关闭并且可以打开?只是在黑暗中拍摄,我不使用jQM。