我正在尝试使用jQuery mobile 1.4.3创建类似于iOS警报视图的弹出窗口。我需要从javascript事件中触发警告消息,例如带有OK按钮的确认消息,其中显示了对Web服务的ajax响应调用。
我的第一个问题是通过弹出窗口小部件传递数据,而我发现很多搜索都是不可能的。
我发现几乎可以满足我的代码需求:
$('#index').live('pagebeforeshow',function(e,data){ $("#test-button").bind('click',function(event, ui){ $('<div>').simpledialog2({ mode: 'button', headerText: 'Dialog', buttonPrompt: 'Please, don\'t ruin my blue world', buttons : {'close': {click: function() {}}}, width: '120px' }) }); });
问题是我需要不是通过单击按钮而是通过函数来调用此函数:类似于以下内容:
//POPUP CODE // 1 == warning green // 2 == warning yellow // 3 == warning red function customAlert(message, typeOfWarning){ if(typeOfWarning == "1"){ var auxStr = "green"; }; if(typeOfWarning == "2"){ var auxStr = "yellow"; }; if(typeOfWarning == "3"){ var auxStr = "red"; }; $('<div>').simpledialog2({ mode: 'button', headerText: 'Dialog', buttonPrompt: 'Please, don\'t ruin my blue world', buttons : {'close': {click: function() {}}}, width: '120px' }) };
我是JavaScript和jQuery Mobile的新手,需要帮助,无法正常工作。
提前致谢。
jQuery Mobile的 Popup小部件 具有多种操作方式。可以通过按钮调用或以编程方式打开它。结构很简单,但是请注意,只有页面div应该是弹出窗口的直接父级。
<div data-role="page"> <div data-role="popup" id="foo"> <!-- content --> </div> </div>
要通过按钮或锚点将其静态打开,请执行以下操作:
<a href="#foo" data-rel="popup" data-transition="pop">Popup</a>
以编程方式打开它:
$("#foo").popup("open");
另外,您可以将特殊事件用于任何您想要的目的,例如popupafteropen和popupafterclose。
popupafteropen
popupafterclose
以下是动态创建的弹出窗口的示例。
// close button var closeBtn = $('<a href="#" data-rel="back" class="ui-btn-right ui-btn ui-btn-b ui-corner-all ui-btn-icon-notext ui-icon-delete ui-shadow">Close</a>'); // text you get from Ajax var content = "<p>Lorem ipsum dolor sit amet, consectetur adipiscing. Morbi convallis sem et dui sollicitudin tincidunt.</p>"; // Popup body - set width is optional - append button and Ajax msg var popup = $("<div/>", { "data-role": "popup" }).css({ width: $(window).width() / 1.5 + "px", padding: 5 + "px" }).append(closeBtn).append(content); // Append it to active page $.mobile.pageContainer.pagecontainer("getActivePage").append(popup); // Create it and add listener to delete it once it's closed // open it $("[data-role=popup]").on("popupafterclose", function () { $(this).remove(); }).on("popupafteropen", function () { $(this).popup("reposition", { "positionTo": "window" /* custom position x: 150, y: 200 */ }); }).popup({ dismissible: false, history: false, theme: "b", /* or a */ overlayTheme: "b", /* or a */ transition: "pop" }).popup("open");
演示版