Как я уже говорил в комментариях (до копирования/вставки имели место в другой ответ), позвонив по телефону myFunction
вы на самом деле добавление прослушиватель событий каждые 5 секунд, каждый раз, когда SetTimeout пожары, потому что вы что это:
function myFunction() {
// this below adds an event listener every time
$('#content').delegate('#fileList', 'fileActionsReady',function(ev){
то, что я предложил было изменить myFunction
и сделать его функцию обратного вызова fileActionReady
(не уверен, если он срабатывает один раз или непрерывно). Так что ваш окончательный код должен быть что-то вроде этого:
$('#content').delegate('#fileList', 'fileActionsReady', myFunction);
function myFunction(ev) {
var $fileList = ev.fileList.$fileList;
$fileList.find('tr').each(function(){
$filename = $(this).attr('data-file');
$owner = $(this).attr('data-share-owner');
$id = $(this).attr('data-id');
getState($id,$filename,$owner,"true");
}
setTimeout(function(){
myFunction(ev)
}, 5000);
}
Что делает этот код является то, что она начинается на первый fileActionsReady
события получила, и после этого он запускает ту же функцию, каждые 5 минут. Если вы не хотите ждать события, вы можете запустить функцию вручную, просто не забудьте передать данные списка файлов (если вам это действительно нужно).
Вот краткий пример, чтобы продемонстрировать, что я имею в виду:
$('#content').on('fileActionsReady', '#fileList', myFunction);
function myFunction(ev) {
$('#r').text('tick');
setTimeout(function() {
$('#r').text('');
}, 2500)
setTimeout(function() {
myFunction(ev)
}, 5000);
}
function fireEvent() {
$('#fileList').trigger('fileActionsReady', [{
count: 1
}]);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="fireEvent()">Fire Event</button>
<div id="r"></div>
<div id="content">
<div id="fileList"></div>
</div>
что вы ожидаете именно? – neoDev
Определите «не работает». Также обратите внимание, что 'delegate' устарел в течение некоторого времени. Вы всегда должны опасаться «этого» и что это значит в разных контекстах. –
@DaveNewton Это просто ничего не делает. После делегирования ничего не происходит. Нет ошибки . На самом деле я не написал оригинальный код. Я просто зацикливаю его. –