0
我想升级在1.0.1和jquery 1.6.4版本上运行的旧jquery移动网站到最新版本,并有问题取代某些jquery部分工作在一个选择弹出式按钮。 以下是旧版本jqm 1.3.2和jquery 1.9.1从jqm 1.0.1和jquery 1.6.4升级打破我的弹出窗口
<div class="ui-selectmenu ui-overlay-shadow ui-corner-all ui-body-a pop in" style="top: 30px; right: 30px;">
<div class="ui-header ui-bar-a">
<h1 class="ui-title">Search Results</h1>
<a class="ui-btn-left ui-btn ui-btn-up-a ui-btn-icon-notext ui-btn-corner-all ui-shadow" href="#" data-iconpos="notext" data-icon="delete" title="Close" data-theme="a" style="display: none;">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Close</span>
<span class="ui-icon ui-icon-delete ui-icon-shadow"></span>
</span>
</a>
</div>
<ul id="action_menu-menu" class="ui-selectmenu-list ui-listview" role="listbox" aria-labelledby="action_menu-button" data-theme="a">
<li class="ui-selectmenu-placeholder ui-btn ui-btn-up-a ui-btn-icon-right ui-li ui-btn-active" data-icon="false" data-option-index="0" role="option" tabindex="0" data-theme="a" aria-selected="true">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="ui-link-inherit" href="#">Search Results</a>
</div>
</div>
</li>
<li class="ui-btn ui-btn-icon-right ui-li ui-btn-up-a" data-icon="false" data-option-index="1" role="option" tabindex="-1" data-theme="a" aria-selected="false">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="ui-link-inherit" href="#">Home</a>
</div>
</div>
</li>
<li class="ui-btn ui-btn-icon-right ui-li ui-btn-up-a" data-icon="false" data-option-index="2" role="option" tabindex="-1" data-theme="a" aria-selected="false">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="ui-link-inherit" href="#">Email</a>
</div>
</div>
</li>
</ul>
</div>
而且follwoing生成的HTML是我当前的代码生成的HTML
<div id="action_menu-listbox-screen" class="ui-popup-screen in"></div>
<div id="action_menu-listbox-popup" class="ui-popup-container ui-popup-active" style="max-width: 1564px; top: 30.0001px; left: 14px;" tabindex="0">
<div id="action_menu-listbox" class="ui-selectmenu ui-popup ui-body-a ui-overlay-shadow ui-corner-all">
<div class="ui-header ui-bar-a">
<h1 class="ui-title">Search Results</h1>
</div>
<ul id="action_menu-menu" class="ui-selectmenu-list ui-listview" role="listbox" aria-labelledby="action_menu-button" data-theme="a" data-divider-theme="b">
<li class="ui-selectmenu-placeholder ui-btn ui-btn-up-a ui-btn-icon-right ui-li ui-first-child" data-option-index="0" data-icon="false" data-placeholder="true" role="option" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-iconpos="right" data-theme="a" aria-selected="false">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="ui-link-inherit" href="#" tabindex="-1">Search Results</a>
</div>
</div>
</li>
<li class="ui-btn ui-btn-icon-right ui-li ui-btn-up-a" data-option-index="1" data-icon="false" role="option" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-iconpos="right" data-theme="a" aria-selected="false">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="ui-link-inherit" href="#" tabindex="-1">Home</a>
</div>
</div>
</li>
<li class="ui-btn ui-btn-icon-right ui-li ui-last-child ui-btn-up-a" data-option-index="2" data-icon="false" role="option" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-iconpos="right" data-theme="a" aria-selected="false">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a class="ui-link-inherit" href="#" tabindex="-1">Email</a>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
我并没有改变旧的代码,只是有一个现场的JavaScript方法,我正在努力完全理解和取代。这是如下
<script type="text/javascript">
$(document).bind("mobileinit", function(){
$.mobile.listview.prototype.options.theme= "c";
$.mobile.defaultTransition = 'none';
$.mobile.pushStateEnabled = false;
$.extend( $.mobile , {
ajaxFormsEnabled : false,
ajaxLinksEnabled : false,
ajaxEnabled:false,
// loadingMessage: false
});
});
</script>
<script src="</jquery.mobile-1.0.1.min.js" type="text/javascript"></script>
<%--Script added by B37914 for CR43399 on 7th March,2012--%>
<script src="/m_alert.js" type="text/javascript"></script>
<script src="/m_common.js" type="text/javascript"></script>
<script>
var mobileMainViewUrl = 'http;//www.yahoo.com';
var urlForEmailAction = document.location.href;
$('#header-logo').click(function(){alert("this is the header alert");});
$(document).bind("mobileinit", function(){
$.mobile.defaultTransition = 'none';
});
**
$( “选择[ID = 'action_menu']”)生活( “改变”,的ActionHandler)。
**
$(document).ready(function(){
if($("li[class*='ui-btn-icon-right']")!=null){
$("li[class*='ui-btn-icon-right']").each(function(ind,elm){
var anch=$(this).find("a[class*='ui-link-inherit']");
var arrowIcn=$(elm).find("span[class='ui-icon ui-icon-arrow-r ui-icon-shadow']");
if(anch !=null && arrowIcn!=null){
$(arrowIcn).appendTo(anch);
}
});
}
});
function showActionMenu(assetId,assetType){
var language=document.getElementById("m_lang").value;
var pageTitle = $('title').html();
pageTitle = pageTitle.replace("&","and");
pageTitle = pageTitle.replace("amp;","");
pageTitle = pageTitle.replace("&","and");
//changed by b36050 for cr-48634 on 17 jan 2013
callActionButton('action_menu',pageTitle,urlForEmailAction,true,assetId,assetType,deleteFavorite,language);
}
</script>
请检查产生这两个HTML的,并在http://jsfiddle.net/hgafoor/85qy3/
的.js文件我已经尝试了各种选择,但我不能够以某种方式得到的代码当我使用点击时选项的价值。我曾尝试使用#action_menu菜单作为选择器,并尝试过绑定和委托我不明白为什么在新版本中,action_menu的id被添加为主要div来生成弹出框而不是ui-selectmenu。我一直停留在这一段时间现在将是一个伟大的投手,如果有人可以帮助我这个
您是否需要一些新功能?如果没有,我建议不要升级。 – Blazemonger
全局设置'mobileinit'应该在jQ之后和jQM之前加载。使用'.on'代替'.live',并且不要在jQM中使用'.ready()',使用'pageinit'或其他jQM事件。 – Omar
我想这是一个错字? '