gpt4 book ai didi

javascript - 我怎么把范围弄错了?无法从 jQuery 访问此函数 ".on"

转载 作者:行者123 更新时间:2023-11-28 07:34:58 25 4
gpt4 key购买 nike

大家早上好,

我使用以下代码来模拟 AJAX 的 setInterval:

//  Poll for ALERTs
(function pollForAlerts() {
var params = { "send": 1, "poll": 1 };

// Set up the correct patch for sending AJAX data
ALERTS = {};
ALERTS.Auth = { site: data_site, uuid: data_uuid };

ALERTS.API = function(app,data) {
var url = "//myurl.com/alerts/"+ app +"/?";
var data = $.extend({}, ALERTS.Auth, data);
return url + jQuery.param(data || "") + '&timestamp='+$.now();
}

// Run the AJAX request
$.getJSON( ALERTS.API( 'touchscreen', params ) , function (response) {
if( typeof response === "object" ) {
for( var i = 0; i < response.length; i++ )
renderAlert(response[i]);
} else { setTimeout( pollForAlerts, 3000 ); }
});
}());

该函数重复运行,直到找到响应。

如果单击某个元素,我想设置一个 jQuery“.on”来重新启动此循环:

//  Respond to ALERT
$('#alerts').on('click', 'td.initials span', function(event) {
$(this).closest('tr').removeClass("active abs cri");
pollForAlerts();
});

但是,当我这样做时,我在 Firebug 中收到以下错误:

ReferenceError: pollForAlerts is not defined
http://myurl.com/alerts/static/js/touchscreen.js
Line 14

我不明白为什么无法访问 pollForAlerts()。是因为自执行函数,还是只是因为它在 jQuery 的 on 函数中使用?

我不是 JavaScript 专家,尤其是在自执行函数和闭包方面,所以请对我温柔点!

邓肯

最佳答案

您编写了自调用函数,这些函数在生命周期中仅执行一次。如果你想多次调用一个函数,那么你可以将它写成普通函数。

关于javascript - 我怎么把范围弄错了?无法从 jQuery 访问此函数 ".on",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28714942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com