我需要你的帮助。我很难得到这个 事件处理程序在移动设备上工作
https://github.com/jquery/jquery-mobile/issues/8017
附加到Checkbox / Radio项目的Click事件在桌面浏览器中工作,但在移动浏览器中不起作用。
我有这段代码可以在浏览器上正常工作,但事件并没有在移动设备上捕获
$(document).on('click', '.ui-checkbox-off', function (event, data) {
alert('ss');
});
$(document).on('click', '.ui-checkbox-on', function (event, data) {
alert('ss');
});
在复选框检查时被调用并取消选中,如此小提琴
所示http://jsfiddle.net/cod7ceho/34/
但使用移动设备
时未捕获此事件(我动态生成上面的HTML),我也在使用trigger.create和updatelayout
任何人都可以告诉我他们为什么没有被手机捕获
供您参考我正在创建HTML,如此小提琴
所示http://jsfiddle.net/cod7ceho/35/
如果有任何问题,请告诉我。
答案 0 :(得分:0)
尝试使用touchstart
事件
$(document).on('touchstart click', '.remove', function (e) {
$("#addonsWrap").find("label.ui-checkbox-on").trigger('click', [1]);
});
$(document).on('touchstart click', '.ui-checkbox-off', function (event, data) {
if(data !== undefined) return;
var cost = $(this).data('cost');
var totalcost = parseFloat($('.totalcost').text());
totalcost = totalcost + cost;
$('.totalcost').text(totalcost)
});
$(document).on('touchstart click', '.ui-checkbox-on', function (event, data) {
if(data !== undefined) return;
alert('ss');
var cost = $(this).data('cost');
var totalcost = parseFloat($('.totalcost').text());
totalcost = totalcost - cost;
$('.totalcost').text(totalcost)
});
jsfiddle http://jsfiddle.net/cod7ceho/41/
答案 1 :(得分:0)
在移动设备上实际上可以正常使用,但它可能与浏览器有关。但是,相当于click
的近距离移动设备是touchend
那么
$(document).on('click touchend', '.ui-checkbox-off', function (event, data) {
alert('ss');
});
$(document).on('click touchend', '.ui-checkbox-on', function (event, data) {
alert('ss');
});
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events