- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过 .get 从 php 文件获取模板,但无法正确渲染输入或 ListView 。
当我直接在 js 文件中附加 html 时,它将正确呈现,因此我认为它与模板中的数据返回方式有关。
提前致谢。
js
$(document).ready(function() {
$('#addOffice, #addDoctor').on('click', function() {
var $popUp = $("<div/>").popup({
dismissible : false,
theme : "b",
overlayTheme : "b",
transition : "pop"
}).on("popupafterclose", function() {
$(this).remove();
}).css({
'width': '400px',
'padding': '10px'
});
$.get('../templates/'+$(this).attr('id')+'.php', function(data){
$(data).appendTo($popUp);
});
$popUp.popup('open').trigger("create");
});
});
PHP 模板
<form id="doctorAdd">
<div class="ui-field-contain">
<label for="doctorName">Full Name<span style="color:rgba(191,191,191,1.00); font-size:.8em; float:right;"> ( Required )</span></label>
<input type="text" name="doctorName" id="doctorName" placeholder="Full Name" value="">
</div>
<div class="ui-field-contain">
<label for="doctorDOB">DOB<span style="color:rgba(191,191,191,1.00); font-size:.8em; float:right;"> ( Required )</span></label>
<input type="text" name="doctorDOB" id="doctorDOB" placeholder="DOB" value="">
</div>
<ul data-role="listview" data-inset="true" style="margin:20px 0px 0px 0px;">
<li><a href="#" style="text-align:center;" data-rel="back" class="ui-btn ui-mini">Add</a></li>
<li><a href="#" style="text-align:center;" data-rel="back" class="ui-btn ui-mini">Clear</a></li>
</ul>
</form>
最佳答案
工作示例:http://jsfiddle.net/Gajotres/45V7G/
$(document).on('pageshow', '#index', function(){
$(document).on('click', '#addPopup',function() {
// close button
var closeBtn = $('<a href="#" data-rel="back" data-role="button" data-theme="b" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>').button();
// text you get from Ajax
var content = '<form id="doctorAdd"><div class="ui-field-contain"><label for="doctorName">Full Name<span style="color:rgba(191,191,191,1.00); font-size:.8em; float:right;"> ( Required )</span></label><input type="text" name="doctorName" id="doctorName" placeholder="Full Name" value=""></div> <div class="ui-field-contain"><label for="doctorDOB">DOB<span style="color:rgba(191,191,191,1.00); font-size:.8em; float:right;"> ( Required )</span></label><input type="text" name="doctorDOB" id="doctorDOB" placeholder="DOB" value=""></div> <ul data-role="listview" data-inset="true" style="margin:20px 0px 0px 0px;"><li><a href="#" style="text-align:center;" data-rel="back" class="ui-btn ui-mini">Add</a></li><li><a href="#" style="text-align:center;" data-rel="back" class="ui-btn ui-mini">Clear</a></li></ul> </form>';
// Popup body - set width is optional - append button and Ajax msg
var popup = $("<div/>", {
"data-role": "popup",
"class" : "ui-content"
}).css({
"width": "400px"
}).append(closeBtn).append(content);
// Append it to active page
$(".ui-page-active").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"
});
}).popup({
dismissible : false,
theme : "b",
overlayTheme : "b",
transition : "pop"
}).enhanceWithin().popup("open");
});
});
最后一件事,这里使用的代码不会像这样工作,因为你使用的是 $.get,因为它是异步过程,基本上你需要使用回调函数完成来增强你的代码。
基本上你的代码应该是这样的:
$.get( '../templates/'+$(this).attr('id')+'.php').done(function( data ) {
// close button
var closeBtn = $('<a href="#" data-rel="back" data-role="button" data-theme="b" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>').button();
// text you get from Ajax
//var content = '<form id="doctorAdd"><div class="ui-field-contain"><label for="doctorName">Full Name<span style="color:rgba(191,191,191,1.00); font-size:.8em; float:right;"> ( Required )</span></label><input type="text" name="doctorName" id="doctorName" placeholder="Full Name" value=""></div> <div class="ui-field-contain"><label for="doctorDOB">DOB<span style="color:rgba(191,191,191,1.00); font-size:.8em; float:right;"> ( Required )</span></label><input type="text" name="doctorDOB" id="doctorDOB" placeholder="DOB" value=""></div> <ul data-role="listview" data-inset="true" style="margin:20px 0px 0px 0px;"><li><a href="#" style="text-align:center;" data-rel="back" class="ui-btn ui-mini">Add</a></li><li><a href="#" style="text-align:center;" data-rel="back" class="ui-btn ui-mini">Clear</a></li></ul> </form>';
// Popup body - set width is optional - append button and Ajax msg
var popup = $("<div/>", {
"data-role": "popup",
"class" : "ui-content"
}).css({
"width": "400px"
}).append(closeBtn).append(data); // Here we are using data response from $.get
// Append it to active page
$(".ui-page-active").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"
});
}).popup({
dismissible : false,
theme : "b",
overlayTheme : "b",
transition : "pop"
}).enhanceWithin().popup("open");
});
关于javascript - JQM 1.4.2 从ajax添加模板到弹出窗口不渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713476/
我需要一些特定于移动设备的样式,类似于 jquery mobile(以及 enyojs、sencha touch 等)提供的样式。特别是,我想使用类似于 jqm 的“linked list”导航样式的
我只想在 collapsiblecol1 之前更改 collapsible col2 的位置。最后的顺序应该是: 1.col2 2.col1 3.col3
我正在尝试在我的第一个 JQM 网站中添加单个条件表单元素 本质上,如果先前选择的值满足预定义的常量,我想添加一个字段。 Item1 Item2 Item3 It
我在前面加上这段代码: Test OFF ON
这个问题在这里已经有了答案: How to change page in jQuery mobile (1.4 beta)? (2 个答案) 关闭 8 年前。 我使用的是 1.4,因此不推荐使用 c
我向 div 容器添加了一个弹出窗口。打开弹出窗口不起作用。 这是我的容器结构: dosn't work either -->
这是一件很奇怪的事情。最后一个按钮总是垂直错位。 http://jsfiddle.net/5u38gf00/ one two
我为单选按钮设置了一个水平对齐的字段,虽然按钮在 iPhone 上显示“恰到好处”,因为它们都在同一条线上而不会中断,但我担心在另一个尺寸的显示器上它会把按钮包起来,看起来很糟糕。 有没有一种简单的方
我有一些基本的 HTML,即; Item1 Item2 Item3 Item4 默认情况下,我将
我仍在研究 JQM,如果这是一个简单的问题,请原谅我。 我正在处理以下 JQM 代码,但我注意到的问题是当我尝试向下拖动文本区域时,它的响应速度似乎有点慢: JQ $(function() {
我对 JQMobile 有疑问。我有两个必须具有相同高度的 div,所以我在周围的 div 上使用了 display: table 并在我的内容周围使用了 display: table-cell。然而
我的 JQM 标题上有多个小的无文本按钮,请参阅下图,在我的 Android PhoneGap 应用程序上。这些按钮在触摸屏设备上很难单击(在桌面浏览器上则很好)。似乎要触发点击事件,我必须点击按钮的
我正在使用 Jquery mobile 作为表单/输入字段集。我需要能够检查字段集中的字段是否完整/具有值。 当可折叠链接关闭时,我需要检测所有字段之一是否有值,如果没有,则应向可折叠链接添加一个类。
我有一个星期几的可折叠集,其中用户的事件表示为可折叠集内的 ListView 。 Sunday
下面的JSFiddle给出了基本的源码: http://jsfiddle.net/vgDwj/6/ Sample
有一个非常小的例子来演示我的 jquerymobile 问题: JSFiddle - http://jsfiddle.net/forrest_gump/Q73Mk/3/ 正如你所看到的,我调用 jqm
我想制作一个全局弹出窗口,这样我就可以从不同的页面访问它。我正在阅读有关此内容的文章,解决方案是将其直接添加到index.html标签中的body标签中,所以我这样做了,现在我可以使用此代码从我的其他
我在 JQuery Mobile 1.4.5 页面中使用以下代码,它显示 jqm 多个自定义选择菜单。 options title o
我正在使用 JQM 1.3.1。我有一个显示元素列表的页面,每个元素旁边都有一个按钮,单击该按钮会显示一个包含一些常规信息的弹出窗口: 重要:我需要弹出窗口出现在按下的按钮旁边 问题是当对象位于页面底
我正在使用 jQuery 移动版。我想要一个固定的标题,我在其中放置标题、菜单按钮、下拉菜单和加载按钮。此结构的目的是在内容区域中加载一个列表,我希望在滚动列表时标题和内容位于固定位置。
我是一名优秀的程序员,十分优秀!