任何人都可以帮助建议为什么这个setTimeout()
功能不起作用?我在网上尝试了很多版本,但它仍无法正常工作。
<script type="text/javascript">
function makeSlection(frm, proj, tenure, address, postal, cat, parent, estate, latlng, district, state) {
alert(proj);
alert('hello im inside makeselection function');
opener.projectn.value = proj;
opener.tenure.value = tenure;
opener.address.value = address;
opener.postcode.value = postal;
opener.category.value = parent;
opener.category.onchange();
opener.state.value = state;
opener.region.value = estate;
opener.add.value = latlng;
opener.latlngse.click();
//setTimeout(function(){alert('hi');},3000);
setTimeout(function(){ pelay(cat); },5000);
}
function pelay(cate){
alert(cate);
opener.category_id.value = cate;
this.close;
}
</script>
<body>
Please select project name.
<form id="fsrm" name="fsrm" action="#">
<table width="100%">
<?php
for($i=0;$i<count($prolists);$i++){
$row = $prolists[$i];
?>
<tr>
<td>
<button type="submit" name="nselect<?php echo $row->id ?>" id="nselect<?php echo $row->id ?>" value="<?php echo $row->project_name ?>" onclick="JavaScript:makeSlection(this.form, document.getElementById('nselect<?php echo $row->id ?>').value, '<?php echo $row->tenure ?>', '<?php echo $row->address ?>', '<?php echo $row->postal_code ?>', '<?php echo $row->cat ?>', '<?php echo $row->parent_id ?>', '<?php echo $row->estate ?>', '<?php echo $row->lat ?>,<?php echo $row->lng ?>', '<?php echo $row->district ?>', '<?php echo $row->state ?>');">Select</button>
</td>
<td>
<?php echo $row->project_name ?>
</td>
</tr>
<?php } ?>
</table>
</form>
</body>
即使我尝试这个:
setTimeout(function(){alert('hi');},3000);
它也无法正常工作。
只需添加正文代码即可调用javascript。
答案 0 :(得分:2)
确实有效。别的东西一定是你的错。
首先,混合使用HTML / Javascript / PHP会让任何人都难以理解你的代码试图实现的目标。
其次,如果你做出Short, Self Contained, Correct, and add an Example,你的问题就更有可能得到一个有助于你找到解决方案的答案。 最好是我们可以在线查看,它可以显示您可以创建的最简单的版本(或者在这种情况下已损坏)。
这样的版本看起来像这样:
<script>
function makeSlection(cat) {
alert('hello im inside makeselection function');
setTimeout(function(){ pelay(cat); },1500);
}
function pelay(cate){
alert(cate);
}
</script>
<button onclick="JavaScript:makeSlection('foo');">Select</button>
我冒昧地从您提供给我们的代码中创建an example on JsFiddle。
这引出了我的第三点:您在问题中提供给我们的代码的简化版本。两个警报都被触发。
所以我猜我们在这里没有全面了解。
答案 1 :(得分:0)
您的setTimeout
位于makeSelection
函数内,因此只会在makeSelection
函数执行后设置超时。