我有一个隐藏的选择元素,其中包含对 javascript 函数的 onchange 调用。
当用户单击我页面上的按钮时,我运行以下代码并显示我的选择表单:
$("#moreDetails2").show();
$('#moreDetails2').trigger("create");
但是在显示之后,它不会执行其 JavaScript 函数。我已经测试过它没有隐藏并且有效。
<div id = \"moreDetails2\">
<select onchange=\"moreDetails2($userID,'$id')\">
<option value=\"0\">More Options</option>
<option value=\"1\"> View Taste Profile</option>
<option value=\"2\"> Add Taste Tags</option>
</select>
</div>
查看 chrome 中的 inspect 元素,我没有收到任何错误。
最佳答案
jQuery Mobile 不能很好地处理 onchange="... 或 onclick="... 事件绑定(bind),您需要像这样手动完成:
$(document).on('pagebeforeshow', '#index', function(){
$(document).on('click', '#test-button', function(){
$("#moreDetails2").show();
$("#moreDetails2 select").css('display','block').selectmenu('refresh');
});
$("#moreDetails2 select").on( "change", function(event, ui) {
moreDetails2('aaaa');
});
});
function moreDetails2(text) {
alert(text);
}
这是根据您的代码创建的一个有效的 jsFiddle 示例:http://jsfiddle.net/Gajotres/DpdXY/
关于javascript - 当显示我的隐藏选择表单时,它不会调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773954/