- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 ajax 调用中接收到一个数组,并使用该数组的元素构建了一系列单选框。在我尝试刷新它们以应用 jqm 标记之前,它运行良好。我只看到预期的四分之二,或预期的三分之一。我创建了一个 fiddle 来说明问题,但 fiddle 根本没有应用标记,只是显示了正确数量的框。 fiddle 是:https://jsfiddle.net/wlukasz/9hno6pyh/7/ .这是我的 html:
<table class="std-table">
<tr>
<td><div id="areas"></div></td>
</tr>
</table>
和javascript:
$(document).on('pagebeforeshow', '#property-details-page', function(){
all_areas = new Array();
var Q001Data = "sql=Q001&dbcall=sql_get_results_array&memid="+<?php echo $member_id?>+"&propid="+<?php echo $property_id?>;
$.ajax({ // ### AJAX to get ALL AREAS on page load ###
url:"pl_process_ajax_call_property_features.php",
type:"POST",
data : Q001Data,
success:function(msg){
$("#areas").html('<fieldset id="all-areas-radio" data-role="controlgroup" data-mini="true"></fieldset>');
all_areas = JSON.parse(msg);
var textToInsert = '';
var i;
for (i = 0; i < all_areas.length; i++) {
var area = JSON.stringify(all_areas[i][0]);
alert(area+i);
textToInsert += '<input type="radio" class="all-areas" name="property-area" id="' + area + '" value="' + area + '"><label for="' + area + '">' + area + '</label>';
alert(textToInsert);
}
$("#all-areas-radio").append(textToInsert);
$("[type=radio]").checkboxradio();
$("[data-role=controlgroup]").controlgroup().controlgroup("refresh");
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Error Q001!");
},
}); // ### AJAX to get ALL AREAS on page load ###
}); // ### document.on
我还使用此 CSS 更改“检查”按钮标签的颜色:
<style>
#all-areas-radio div .ui-radio .ui-radio-on {
background: orange !important;
}
</style>
在我尝试应用 jqm 标记之前,所有预期的单选框都会显示在屏幕上:
$("[type=radio]").checkboxradio();
$("[data-role=controlgroup]").controlgroup().controlgroup("refresh");
这导致标记正确应用到预期的 4 个框中的 2 个框,并且只有两个增强框可见。如果我希望收到 3 个盒子,我只会收到一个增强的盒子,另外两个盒子是隐形的。我运行 jquery 1.11 和 jqm 1.45。请帮忙。
最佳答案
这不是 jQuery Mobile 问题。这里的工作流程在概念上是错误的。
您不能引用 id 或值。你应该建立你的标记以不同的方式。理想情况下,您应该在数据中保留分开的名称和值,例如:
[{"id": "br", "name": "Bathroom"}, {"id": "be", "name": "Bedroom"},
{"id": "ki", "name": "Kitchen"}, {"id": "lo", "name": "Lounge"}]
您应该可以控制从后端获得的内容。您可以使用一些 php 函数来编码您需要的数据。例如,如果您的数据由于错误而包含双引号怎么办?您会在 label
中看到正确的描述,但 id
和 value
将是完全错误的。
这是一个如何调整控制组的示例,但这只是一种解决方法。您应该重新考虑从您的服务器(并可能返回)交换数据的方式。
$(document).on("pagebeforeshow", "#property-details-page", function() {
loadAreas(["\"description \n quoted\" & a new line", "Bathroom", "Bedroom", "Kitchen", "Lounge"]);
});
function loadAreas(areas) {
var container = $("#property-details-content");
container.empty();
var controlGroup = $('<fieldset id="areas" data-role="controlgroup" data-mini="true"></fieldset>');
container.append(controlGroup);
for (var i = 0, l=areas.length; i < l; i++) {
var area = areas[i];
var clean = area.replace(/[^A-Z0-9]/ig, "_");
var control = $('<input type="radio" class="all-areas" name="property-area" id="' + clean + '" value="' + clean + '"><label for="' + clean + '">' + area + '</label>');
controlGroup.append(control);
}
container.enhanceWithin();
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.css">
<link rel="stylesheet" href="style.css" />
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script>
<script src="script.js"></script>
</head>
<body>
<div id="property-details-page" data-role="page">
<div data-role="header" data-position="fixed">
<h1>Property details</h1>
</div>
<div role="main" class="ui-content" id="property-details-content">
</div>
</div>
</body>
</html>
关于Jquery 没有显示所有增强的动态附加单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775090/
我关注了 tutorial on creating a popup for an add-on在 Firefox 中,效果很好。 我现在遇到的问题是它创建的弹出窗口不会更改大小以适应我添加到其中的内容
我有一些视频,我需要连接一个标题并添加一些覆盖,问题是我需要先做覆盖,否则时间不正确,然后才将标题连接到视频的开头 ffmpeg -i talk.mp4 -i start_pancarte.png
我正在尝试附加一个 CSV 文件。这是我正在使用的线路。不幸的是,我找不到 export-csv 的附加选项。任何想法都有助于使其发挥作用。 Get-ADGroupMember "Domain Adm
我正在努力理解 Attach API (com.sun.tools.attach.*) 的用途。它的典型用途是什么?它是为了“模拟”JVM,以便您可以在不部署/启动代码的情况下测试您的代码吗?它是一个
我不明白为什么这不起作用。 soup_main = BeautifulSoup('FooBar') soup_append = BeautifulSoup('Meh') soup_main.body.
我有以下代码来返回我想要的字符串 $sql = " SELECT `description` FROM `auctions` WHERE `description` REGEX
我正在尝试从数组中附加具有多个值的元素,但我做错了。这是我的代码: for(var i=0; i ` + pricesArray[i].start_date ` ` + pricesArray[i
我正在尝试将图像链接添加到此 javascript 附加表中。使图像位于按钮上方 这是代码 $("#1").append(""+section+""+no+""+price+""+button+""
我有一个问题,我已经解决了,但它太烦人了。 我有一个 js 代码,当使用“追加”按下按钮时,它会放下一些 html 代码,并且通过该代码,我为 x 按钮提供了一个 id,并为容器元素提供了一个 id。
我想逐行读取文件,并且每一行可能都有很多字符。 这个版本的readline效果很好 func readLine(r *bufio.Reader) ([]byte, error) { var (
我有一个网站,每次用户登录或注销时,我都会将其保存到文本文件中。 如果不存在,我的代码在附加数据或创建文本文件时不起作用。这是示例代码 $myfile = fopen("logs.txt", "wr"
我正在尝试使用 typescript 和 Formik 创建一个自定义输入字段。我可以就完成以下代码的最佳方式获得一些帮助吗?我需要添加额外的 Prop 标签和名称......我已经坚持了一段时间,希
我有一个字符串 big_html,我想将它添加到某个 div 中。我观察到以下方面的性能差异: $('#some-div').append( big_html ); // takes about 10
如何使用 FormData 创建以下结果 ------WebKitFormBoundaryOmz20xyMCkE27rN7 Content-Disposition: form-data; name="
有没有办法附加 jQuery 事件处理程序,以便在任何先前附加的事件处理程序之前触发该处理程序?我遇到了this article ,但代码不起作用,因为事件处理程序不再存储在数组中,而这正是他的代码所
我正在开发一个需要网络登录的 iPhone 应用程序。像往常一样我打电话 [[UIApplication sharedApplication] openURL:loginURL]; 这将关闭应用程序并
我想开发一个仅针对特定域激活的扩展。 我不希望它在不浏览此特定域时出现在浏览器菜单中。 有可能这样做吗? 最佳答案 可能:对于菜单,您可以添加一个弹出窗口侦听器,用于检查当前加载的URL(docs f
这段 JavaScript 代码 function writeCookie(CookieName, CookieValue, CookieDuration) { var expiration
我正在使用 Handlebars 来渲染使用ajax从本地服务器获得的信息。我的 HTML 看起来像: {{#each Tabs}}
我尝试了以下代码,但当输入框中没有数据时它不会通知。当我直接添加此内容(不附加)时,它会起作用。我在这里做错了什么 var output = "\n"+ "\n"+
我是一名优秀的程序员,十分优秀!