JQuery интервал цикла, несмотря на использование clearInterval - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь добавить существующие кнопки к новой кнопке на панели инструментов. Я создал код, который делает это правильно, но он продолжает работать, несмотря на очищаемый интервал.

Я попытался несколько исправлений, в основном, чтобы переместить clearInterval() за пределы функции (хотя я раньше успешно использовал эту структуру) и в новую функцию в разделе try. Это не сработало.

function MoreButton() {
  window.jQuery && (clearInterval(myBrandingInterval), jQuery(window.parent.document).ready(function() {
    var buttons = $(this).find('#MoreButton').data('buttons');
    document.styleSheets[0].cssText = "#cstmItem:hover > #toolbarmorebutton{display:block !important;}#toolbarmorebutton {position:fixed;   background-color:#7D382B;right:0px; }#lnkSignIn,#prefs,#lnkHelp{padding:10px;display:block; }";
    $("#menuList").append("<li id='itemMore' role='menuitem' class='nav-item'><a title='More options' class='link color-s1' id='lnkMore' tabindex='-1' href='#'>More</a><div id='toolbarmorebutton' style='display: none;' title='More'></div></li>");
    if (buttons.includes('Sign In')) {
      $('#lnkSignIn').appendTo($('#toolbarmorebutton'));
    }
    if (buttons.includes('Folder')) {
      $('#itemFolder').appendTo($('#toolbarmorebutton'));
    }
    if (buttons.includes('Preferences')) {
      $('#prefs').appendTo($('#toolbarmorebutton'));
    }
    if (buttons.includes('Language')) {
      $('#itemLanguages').appendTo($('#toolbarmorebutton'));
    }
    if (buttons.includes('Help')) {
      $('#lnkHelp').appendTo($('#toolbarmorebutton'));
    }
  }))
};

try {
  var myBrandingInterval = setInterval("MoreButton()", 500)
} catch (n) {
  console.log(n)
}
...