【发布时间】:2014-05-12 18:45:26
【问题描述】:
我在 jQuery Mobile 的 listview 中切换 checkboxes 时遇到了困难。当我单击复选框本身时,无法切换复选框,但是当我使用以下代码-sn-p 单击行时,它可以工作:
jQuery sn-p
$('#components a.ui-btn').click(function() {
var checkbox = $(this).find('input[type="checkbox"]');
checkbox.prop("checked", !checkbox.prop("checked"));
});
HTML sn-p
<div data-role="content">
<ul id="components" data-role="listview">
<li>
<a class="ui-btn">
<input name="checkbox-0" id="checkbox-0" type="checkbox"/>
Some random text
</a>
</li>
</ul>
</div>
我准备了jsFiddle 来演示我的问题。此外,我在下面添加了一个截图来说明问题。如果我不使用任何 jQuery 代码,复选框甚至不可点击,所以我希望复选框不会切换两次。我将不胜感激!
【问题讨论】:
-
首先,在锚标签内有一个复选框是没有意义的。您只是在寻找复选框列表jsfiddle.net/ezanker/rautJ/2,还是同时需要复选框和锚点? jsfiddle.net/ezanker/Xf8QT
-
@ezanker 你的第一个小提琴是要走的路。但是,我希望拥有列表视图的外观。意思是,我需要相同的边距/填充,没有圆角等。你知道 jQuery 类来获得相同的外观吗?
-
可以添加data-role="none",也可以使用垂直控制组。这两个例子都在这个小提琴中:jsfiddle.net/ezanker/rautJ/7
-
我已将
class="ui-btn" style="margin-bottom: 0;"添加到所有label以获得预期的外观和感觉。请发表您的评论作为答案,我会除外。data-role="none"对我不起作用,因为我不止一个复选框和一个连续的纯文本。 -
@ezanker 请张贴您的 jsFiddle 示例作为答案,我会排除它
标签: jquery jquery-mobile checkbox jquery-mobile-listview