我有以下代码使用jQuery mobile创建弹出窗口。创建弹出窗口,并创建一个窗体,并将其附加到弹出窗口和两个按钮。这段代码可以正常工作,但我想知道是否有更好的方法来实现我的预期目标。
//create a div for the popup
var $popUp = $("
dismissible : false,theme : "a",overlyaTheme : "a",transition : "pop"
}).bind("popupafterclose",function() {
//remove the popup when closing
$(this).remove();
});
//create a title for the popup
$("
",{text : PURCHASE_TITLE
}).appendTo($popUp);
//create a message for the popup
$("
text : PURCHASE_TEXT
}).appendTo($popUp);
//create a form for the pop up
$("
").append($("",{type : "password",name : "password",placeholder : PASSWORD_INPUT_PLACEHOLDER
})).appendTo($popUp);
//Create a submit button(fake)
$("",{
text : SUBMIT_BTN_TXT
}).buttonMarkup({
inline : true,icon : "check"
}).bind("click",function() {
$popUp.popup("close");
that.subscribeToAsset(callback);
}).appendTo($popUp);
//create a back button
$("",{
text : BACK_BTN_TXT,"data-jqm-rel" : "back"
}).buttonMarkup({
inline : true,icon : "back"
}).appendTo($popUp);
$popUp.popup("open").trigger("create");
你的例子很棒,这是海报例子,应该如何创建动态的jQuery / jQuery Mobile内容。
只改变三件事情:
>最后,您应该将弹出窗口添加到所需的jQuery Mobile页面,因为它不会在data-role =“page”div之外工作。
>将功能绑定更改为on。开启事件绑定方式要快得多。而这里就是替换bind和delegate。
>检查您的代码是否可以在像Chrome这样的网络工具包浏览器中运行。 Chrome有一个令人讨厌的错误,除了pagehow之外,每个页面的事件都会阻止程式化的弹出式窗口。有关此问题的更多信息:http://stackoverflow.com/a/15830353/1848600