我以这种方式使用JQuery Mobile制作一个简单的广播组:
<fieldset id="current_status" data-role="controlgroup" data-type="horizontal">
{% for state in states %}
<input type="radio" name="state-choice" id="state-{{ state.id }}" value="{{ state.id }}" data-code="{{ state.code }}"
{% if state == currentState %}checked="checked"{% endif %}
/>
<label for="state-{{ state.id }}">{{ state.description }}</label>
{% endfor %}
</fieldset>
我需要验证更改,所以我尝试使用以下所有内容:
$(document).ready(function() {
$('#current_status label').click(function(event) {
event.stopPropagation();
event.preventDefault();
changeStatus($(this));
return false;
});
$('#current_status input').click(function(event){
event.stopPropagation();
event.preventDefault();
changeStatus($(this));
return false;
});
. . . . . . . . . . . . . . . . . . .
});
在我的电脑浏览器中,它有效。 但在移动浏览器中,改变并未被阻止。 这可能是个问题?
答案 0 :(得分:2)
我认为问题在于您的移动浏览器不会触发点击事件,而是触发/点击事件等。
有一个名为&#34; vclick&#34;的事件。在jQuery Mobile中解决这个问题。
但在您的情况下,听取输入字段的值更改可能是一个更明智的想法。
$('#current_status input').on('change',function(event){
event.stopPropagation();
event.preventDefault();
changeStatus($(this));
return false;
});