我想要做的是从ajax调用返回的视图中触发按钮的click事件。此过程在诸如chrome之类的pc浏览器中工作正常,但在移动浏览器中却不是这样。 (我正在使用jquery和jquery mobile)。
(这里涉及的代码要多得多,但为了清楚起见,我已将其删除了)
我的html页面中有一个按钮就像这样。
<input type="button" id="bt1" value="" />
它上面有一个onclick事件监听器。
我有一个调用php脚本的ajax调用:
$.ajax({
url: 'blah.php',
type: 'get',
data: {
id : $('#field').val()
},
dataType: 'html',
success: function (data) {
$('#somediv').html(data);
}
});
它返回“data”,它是带有内联javascript的html段。它包含以下代码:
<div>
<script type="text/javascript">
$(document).ready(function () {
$("#bt1").trigger("click");
});
</script>
</div>
我注意到,在移动设备中使用触发事件时不会触发。但在电脑上工作正常。
在处理移动设备时,DOM是否有不同之处,如果对象位于视图之外,它会阻止触发器(“点击”)工作?
答案 0 :(得分:-1)
尝试在touchstart
事件旁添加click
事件。
$("#bt1").trigger("touchstart click");
答案 1 :(得分:-1)
答案 2 :(得分:-1)
找不到按钮,因为javascript代码和按钮元素是以编程方式创建的,请尝试:
$(document).find('#bt1').trigger('click');
或
$(document).find('#bt1').each(function(e) {
e.trigger('click');
}
或者,更好:
success: function (data) {
$('#somediv').html(data).promise().done(){
$('#bt1').trigger('click');
});
}