我正在尝试使用 javascript在phonegap / JQM应用程序中更改选择值. 我改变了它的值后,我按照这个建议来调用.selectmenu(‘refresh’);它得到这个错误: 未初始化前无法调用selectmenu方法;尝试调用
我改变了它的值后,我按照这个建议来调用.selectmenu(‘refresh’);它得到这个错误:
未初始化前无法调用selectmenu方法;尝试调用方法’刷新’
如果我删除该调用,则选择的.val()将会更改,但屏幕上的图形不会改变. .selectmenu(“refresh”)旨在使图形与select的.val()进行同步.
以下是我尝试使用的两个资源:
http://jquerymobile.com/demos/1.0a3/#docs/forms/plugin-eventsmethods.html
http://jquerymobile.com/test/docs/forms/forms-selects.html
我是新的phonegap和JQM.
以下是每3秒尝试翻转一次的示例代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta name="viewport" content="width=default-width; user-scalable=no" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Demo Error</title> <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> <script type="text/javascript" charset="utf-8"> function onBodyLoad() { document.addEventListener("deviceready",onDeviceReady,false); for (i=1;i<10;i++) { setTimeout('changeProduct()',i*3000); } } function changeProduct() { if ($("#product").val() == 'S') { $("#product").val('M'); } else { $("#product").val('S'); } console.log("calling selectmenu refesh change to " + $("#product").val()); $("#product").selectmenu('refresh', true); } /* When this function is called, PhoneGap has been initialized and is ready to roll */ function onDeviceReady() { // do your thing! } </script> <link rel="stylesheet" href="jquery.mobile-1.0a3.css" /> <link rel="stylesheet" href="quote.css" /> <script src="jquery-1.5.min.js"></script> <script src="jquery.mobile-1.0a3.js"></script> </head> <body onload="onBodyLoad()"> <div id="page1" data-role="page"> <div data-role="content"> <div id="product-all" data-role="fieldcontain"> <label for="product">Product:</label> <select data-role="slider" name="product" id="product" value="S"> <option id="one" value="S">Single</option> <option id="two" value="M" selected="selected">Multi</option> </select> </div> </div> </div> </body> </html>我想到了:
当您要使用javascript更改data-role = slider的值时,更改该值后,调用:$(‘#mysliderid’).slider(‘refresh’);
当您要更改data-role = select的值时,请更改该值,然后调用:$(“#myselectid”).selectmenu(‘refresh’,true);
这可能会令人困惑,因为在内部他们都使用选择,所以可能被误导,认为选择菜单将适用于两者.