我需要在点击按钮后仅运行一个功能。
控制台告诉我这条消息:
VM9200:1未捕获的ReferenceError:getId未定义为:1:1
function getId() {
$.getJSON("https://maxtechglobal.com/vencimientos/perfil/perfil.php?cuit="+$("#cuit").val(), function(result){
for (var i = 0; i < result.data.length; i++) {
$.each(result.data[i].perfil, function( index, value ) {
var id = result.data[i].perfil.id;
$("#idPerfil").val(id);
});
}
});
}
&#13;
<button id="btnBuscar" onclick="setTimeout('getId()', 5000);" type="button" class="btn btn-primary text-center" name="button">Buscar</button>
&#13;
我证明了这一点:setTimeout(getId, 5000);
以及此setTimeout("getId();", 5000);
和此:setTimeout('getId', 5000);
但是一切正常
答案 0 :(得分:2)
您可以使用解决方案
$('#btnBuscar').click(function(){
setTimeout(function(){
$.getJSON("https://maxtechglobal.com/vencimientos/perfil/perfil.php?cuit="+$("#cuit").val(), function(result){
for (var i = 0; i < result.data.length; i++) {
$.each(result.data[i].perfil, function( index, value ) {
var id = result.data[i].perfil.id;
$("#idPerfil").val(id);
});
}
});
}, 5000);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnBuscar" type="submit" class="btn btn-primary text-center" name="button">Buscar</button>
&#13;
由于您是jQuery
,因此我使用了jQuery
的点击事件。
$('#btnBuscar').click(function(){});
我在setTimeout
方法&amp; {}中使用click
在其中添加了代码行(而不是关闭另一个函数)。
答案 1 :(得分:2)
GET /_search
{
"query": {
"function_score": {
"filter": {
"term": { "city": "Barcelona" }
},
"functions": [
{
"filter": { "term": { "features": "wifi" }},
"weight": 1
},
{
"filter": { "term": { "features": "garden" }},
"weight": 1
},
{
"filter": { "term": { "features": "pool" }},
"weight": 2
}
],
"score_mode": "sum",
}
}
}
事件属性时,需要在窗口范围内声明 filter
。我打赌你把它放在了document.ready处理程序之下。
另请注意,您可以通过将函数 reference 传递给超时并使用不显眼的事件处理程序而不是过时的getId()
属性来改进代码并避免此问题。试试这个:
on*
&#13;
on*
&#13;
答案 2 :(得分:0)
在这里 - 工作示例
function getId() {
alert('function');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnBuscar" onclick="setTimeout(getId, 3000);" type="button" class="btn btn-primary text-center" name="button">Buscar</button>
答案 3 :(得分:0)
setTimeout接受对函数的引用作为第一个参数。 这可以是函数的名称:
function explode(){
console.log('called!');
}
setTimeout(explode, 5000);
引用函数的变量:
var explode = getId(){
console.log('called!');
};
setTimeout(explode, 5000);
或匿名函数:
setTimeout(getId(){
console.log('called!');
}, 5000);
也可以传递setTimeout一串代码来执行:
setTimeout("console.log('called!');", 5000);