Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Funkcja się duplikuje
Forum PHP.pl > Forum > Przedszkole
Topcio82
Witajcie
Mam pytanko, może i głupie dla was, ale nie mogę sobie sam poradzić.

Mam funkcję
  1. let buttonClose = function() {
  2.  
  3. if (window.innerWidth / widthPropotion > window.innerHeight / heightProportions) {
  4. closeButton.style.top = `0px`;
  5. closeButton.style.right = ((window.innerWidth - ((window.innerHeight / heightProportions) * widthPropotion)) / 2) + `px`;
  6. };
  7. if (window.innerWidth / widthPropotion < window.innerHeight / heightProportions) {
  8. closeButton.style.top = (window.innerHeight - ((window.innerWidth / widthPropotion) * heightProportions) - (window.innerHeight - (window.innerWidth / widthPropotion) * heightProportions) / 2) + `px`;
  9. closeButton.style.right = `0px`;
  10. };
  11.  
  12. closeButton.style.display = `block`;
  13. $(closeButton).on('click', function(event) {
  14. event.stopPropagation();
  15. closeButton.classList.add(`zoomInImage`);
  16. $(closeButton).one('webkitAnimationEnd...', function () {
  17. closeButton.classList.remove(`zoomInImage`);
  18. $(closeButton).css(`display`, `none`);
  19.  
  20. console.log(globalID.main);
  21. console.log(globalMenuID.main);
  22. console.log(globalMenuNextID.main);
  23. console.log(globalMenuNextChildID.main);
  24. console.log(globalTurfNextID.main);
  25. console.log(globalTurfNextChildID.main);
  26.  
  27. if (globalID.main == `turf`) {
  28.  
  29. if (
  30. (
  31. ( globalMenuNextChildID.main && !Number( globalMenuNextChildID.main ) ) ||
  32. ( globalMenuNextID.main && !Number( globalMenuNextID.main ) ) ||
  33. ( globalMenuID.main && !Number( globalMenuID.main ) )
  34. ) &&
  35. (
  36. !globalTurfNextChildID.main ||
  37. !globalTurfNextID.main
  38. )
  39. ) {
  40. if (globalMenuNextChildID.main) {
  41. console.log(`1`);
  42. eval(globalMenuNextID.main)(sX, sY);
  43. globalMenuNextChildID.main = 1;
  44. } else
  45. if (globalMenuNextID.main) {
  46. console.log(`2`);
  47. eval(globalMenuID.main)(sX, sY);
  48. globalMenuNextID.main = 1;
  49. } else
  50. if (globalMenuID.main) {
  51. console.log(`3`);
  52. eval(globalID.main)(sX, sY);
  53. globalMenuID.main = 1;
  54. }
  55. };
  56.  
  57. if (
  58. (
  59. !globalMenuNextChildID.main ||
  60. !globalMenuNextID.main ||
  61. !globalMenuID.main
  62. ) &&
  63. (
  64. ( globalTurfNextChildID.main && !Number( globalTurfNextChildID.main ) ) ||
  65. ( globalTurfNextID.main && !Number( globalTurfNextID.main ) )
  66. )
  67. ) {
  68. if (globalTurfNextChildID.main) {
  69. console.log(`4`);
  70. turfBuildings(globalTurfNextID.main);
  71. globalMenuNextID.main = 1;
  72. } else
  73. if (globalTurfNextID.main) {
  74. console.log(`5`);
  75. eval(globalID.main)(sX, sY);
  76. globalTurfNextID.main = 1;
  77. }
  78. };
  79.  
  80.  
  81. if (
  82. (
  83. ( globalMenuNextChildID.main && !Number( globalMenuNextChildID.main ) ) ||
  84. ( globalMenuNextID.main && !Number( globalMenuNextID.main ) ) ||
  85. ( globalMenuID.main && !Number( globalMenuID.main ) )
  86. ) &&
  87. (
  88. ( globalTurfNextChildID.main && !Number( globalTurfNextChildID.main ) ) ||
  89. ( globalTurfNextID.main && !Number( globalTurfNextID.main ) )
  90. )
  91. ) {
  92. if (globalMenuNextChildID.main) {
  93. console.log(`6`);
  94. eval(globalMenuNextID.main)(sX, sY);
  95. globalMenuNextChildID.main = 1;
  96. } else
  97. if (globalMenuNextID.main) {
  98. console.log(`7`);
  99. eval(globalMenuID.main)(sX, sY);
  100. globalMenuNextID.main = 1;
  101. } else
  102. if (globalTurfNextChildID.main) {
  103. console.log(`8`);
  104. turfBuildings(globalTurfNextID.main);
  105. globalMenuNextID.main = 1;
  106. } else
  107. if (globalMenuID.main || globalTurfNextID.main) {
  108. console.log(`9`);
  109. eval(globalID.main)(sX, sY);
  110. globalMenuID.main = 1;
  111. globalTurfNextID.main = 1;
  112. }
  113. };
  114. };
  115.  
  116.  
  117. if (globalID.main == `primary`) {
  118. if (globalMenuNextChildID.main) {
  119. console.log(`6`);
  120. globalMenuNextChildID.main = null;
  121. eval(globalMenuNextID.main)(sX, sY);
  122. return;
  123. } else
  124. if (globalMenuNextID.main) {
  125. console.log(`7`);
  126. globalMenuNextID.main = null;
  127. eval(globalMenuID.main)(sX, sY);
  128. return;
  129. } else
  130. if (globalMenuID.main) {
  131. console.log(`8`);
  132. globalMenuID.main = null;
  133. eval(globalID.main)(sX, sY);
  134. return;
  135. }
  136. };
  137. });
  138. });
  139. };


Uruchamiam ją za każdym razem gdy wejdę w jakieś podmenu.
Problem polega na tym, że ona się tak jakby duplikuje.
Za pierwszym razem po naciśnięciu guzika zamknij dostaję w konsoli
  1. 01_Body.js:16 DOM is Fully Load
  2. 01_Body.js:172 Function: Media Query Matches.
  3. 01_Body.js:180 Orientation: Landscape
  4. 01_Body.js:190 Device: Compatible
  5. 01_Body.js:1654 red_tile_04
  6. 01_Body.js:1678
  7. 01_Body.js:622 turf
  8. 01_Body.js:623 null
  9. 01_Body.js:624 null
  10. 01_Body.js:625 null
  11. 01_Body.js:626 red_tile_04
  12. 01_Body.js:627 null
  13. 01_Body.js:676 5


za drugim

  1. 01_Body.js:16 DOM is Fully Load
  2. 01_Body.js:172 Function: Media Query Matches.
  3. 01_Body.js:180 Orientation: Landscape
  4. 01_Body.js:190 Device: Compatible
  5. 01_Body.js:1654 red_tile_04
  6. 01_Body.js:1678
  7. 01_Body.js:622 turf
  8. 01_Body.js:623 null
  9. 01_Body.js:624 null
  10. 01_Body.js:625 null
  11. 01_Body.js:626 red_tile_04
  12. 01_Body.js:627 null
  13. 01_Body.js:676 5
  14. 01_Body.js:1654 red_tile_05
  15. 01_Body.js:1678 none
  16. 01_Body.js:622 turf
  17. 01_Body.js:623 null
  18. 01_Body.js:624 null
  19. 01_Body.js:625 null
  20. 01_Body.js:626 red_tile_05
  21. 01_Body.js:627 null
  22. 01_Body.js:676 5
  23. 01_Body.js:622 turf
  24. 01_Body.js:623 null
  25. 01_Body.js:624 null
  26. 01_Body.js:625 null
  27. 01_Body.js:626 1
  28. 01_Body.js:627 null



i tak bez końca
co ja robię źle.
Proszę pomóżcie



Przepraszam, zrobiłem edycję, a post się zrobił drugi raz. Nie wiem jak usunąć poprzedni

Dobra, już sobie naprawiłem

Pozdrawiam
Tomplus
Rzuciłeś ścianę kodu, oraz logi, ale nawet nie podałeś gdzie zaczynają się linie błędnych logów, oraz nie widzimy w ogóle kodu HTML, bo może masz źle wywołania zrobione.
Topcio82
otóż problem polegał na tym, że żadnych błędów nie dostawałem.
Po prostu guzik close się zapętlał, bo zapomniałem zrzucić flagi przed jego kolejnym pokazaniem się.
Wiem, że ten kawałek kodu mógł nic nie powiedzieć, trzeba by było to zobaczyć w akcji.
Gdyby ktoś się odezwał wcześniej podałbym adres gdzie można by było zobaczyć co się działo.
Teraz jest ok.
ale jak chcesz rzucić okiem to proszę
http://213.156.124.33/test

problem polegał na tym, że po wejściu w turf i w nim w jakieś podmenu i potem otwarciu menu, po zamknięciu menu powinno wrócić do podmenu z turf a wracało bezpośrednio do turf i widać było, że wraca do podmenu turf i potem odrazu do turf.
Z tym nie mogłem sobie poradzić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.