我有以下哪些不起作用
$('#select').val( jQuery.url.param("id") );
$('#button').click();
似乎点击在其上方的行完成之前执行。如何确保在执行单击之前完成第一行?
由于点击操作取决于所设置的选择控件中的值。我目前正在根据选择控件中的第一个选项获得结果。
答案 0 :(得分:2)
如果你想执行$('#button')。在select的值改变之后点击()然后你可以试试这个
$(document).ready(function(){
$('#mySelect').change(function(e){
//alert($(this).val());
$('#button').click();
});
$('#button').click(function(e){
alert($('#mySelect').val());
});
// Change the value of select after 2 seconds of page load and fire the change event
setTimeout(function(){
$('#mySelect').val($('#mySelect option:eq(1)').val()); // Selects second item
$('#mySelect').change();
}, 2000);
});
小提琴是here。这可能不是你想要的,而是一个想法。
答案 1 :(得分:2)
JavaScript是单线程的。由于上面的代码都没有任何副作用(比如启动AJAX请求),所以第二个命令在第一个之后执行。这意味着别的东西一定是错的。
试试这个:
$('#select')
确实符合某些内容? $('#foo').val(...);
不会导致错误,但不会执行任何操作。