• 26-12-2022, 19:37:53
    #1
     <div class="settings">
                    <button onclick="showMenu(this)" > <i class="fa fa-ellipsis-v"></i></button>
                    <ul class="task-menu">
                    <button class="btn-danger"><i class="fa fa-trash-o"></i>Sil</button>
                    </ul>
                </div>
     <div class="settings">
                    <button onclick="showMenu(this)" > <i class="fa fa-ellipsis-v"></i></button>
                    <ul class="task-menu">
                    <button class="btn-danger"><i class="fa fa-trash-o"></i>Sil</button>
                    </ul>
                </div>
     <div class="settings">
                    <button onclick="showMenu(this)" > <i class="fa fa-ellipsis-v"></i></button>
                    <ul class="task-menu">
                    <button class="btn-danger"><i class="fa fa-trash-o"></i>Sil</button>
                    </ul>
                </div>
    Elimde Böyle Bir Kod Var Ben Bunun ONCLİCK İçerisindeki function normal javascrip dosyasınde çalıştırmak istiyorum acaba nasıl yapabiliri
    amacım onclick eventinin işlevini js dosyasının içine almak
  • Kabul Edilen Cevap
    • Anladığım kadarıyla, elimizdeki kodda bulunan button elemanlarının onclick özniteliğinde tanımlı olan showMenu fonksiyonunu, ayrı bir JavaScript dosyası olan main.js dosyasına taşımak istiyorsunuz. Bunu şöyle yapabilirsiniz:

      Yeni bir JavaScript dosyası oluşturun, örneğin main.js.
      HTML dosyasında, main.js dosyasını başvuran bir script etiketi ekleyin:

      <script src="main.js"></script>

      main.js dosyasında, showMenu fonksiyonunu tanımlayın:

      function showMenu(element) {
      // showMenu fonksiyonunun kodu buraya yazılır
      }

      HTML dosyasındaki button elemanlarından onclick özniteliğini kaldırın. Bunun yerine, button elemanlarına class özniteliği ekleyin, örneğin class="show-menu".

      main.js dosyasında, JavaScript'in addEventListener fonksiyonunu kullanarak button elemanları için tıklama olay dinleyicisi olarak showMenu fonksiyonunu ekleyin:

      const buttons = document.querySelectorAll('.show-menu');
      buttons.forEach(button => {
      button.addEventListener('click', showMenu);
      });

      Bu, button elemanları tıklandığında showMenu fonksiyonunun çağrılmasını sağlar, HTML'deki onclick özniteliği kullanılmadan.
  • 26-12-2022, 19:40:37
    #2
    Merhaba,
    Sayfada (ya da JS dosyalarınızda) "showMenu" isminde bir fonksiyonunuz bulunması gerekiyor.
    Onu doğrudan alıp bir javascript dosyasının içine koyup o dosyayı istediğiniz yerde dahil etmeniz yeterli olacaktır.
  • 26-12-2022, 19:43:25
    #3
    DeSh adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    Sayfada (ya da JS dosyalarınızda) "showMenu" isminde bir fonksiyonunuz bulunması gerekiyor.
    Onu doğrudan alıp bir javascript dosyasının içine koyup o dosyayı istediğiniz yerde dahil etmeniz yeterli olacaktır.
    evet elimde öyle bir fonksiyon var ben kodu bu halede bile çalışmasını sağlamak istiyorum
    <div class="settings">
                   <button> <i class="fa fa-ellipsis-v"></i></button>
                   <ul class="task-menu">
                   <button class="btn-danger"><i class="fa fa-trash-o"></i>Sil</button>
                   </ul>
               </div>
    <div class="settings">
                   <button> <i class="fa fa-ellipsis-v"></i></button>
                   <ul class="task-menu">
                   <button class="btn-danger"><i class="fa fa-trash-o"></i>Sil</button>
                   </ul>
               </div>
    <div class="settings">
                   <button > <i class="fa fa-ellipsis-v"></i></button>
                   <ul class="task-menu">
                   <button class="btn-danger"><i class="fa fa-trash-o"></i>Sil</button>
                   </ul>
               </div>
    acaba bir yolu varmı
  • 26-12-2022, 19:49:12
    #4
    Anladım.
    O zaman yapmanız gereken showMenu ismindeki normal fonksiyonunuzu eventlistener olarak butonlara bağlayabilirsiniz
    (Ahatta aşağıdaki showMenu yazan yere doğrudan fonksiyonu yazarak anonymous function haline de getirebilirsiniz)

    //butonlarınızı bulun
    var x = document.getElementById( "myBtn" ); 
    
    //fonksiyonunuzu butonlara atayın:
    x.addEventListener("click", showMenu);
  • 26-12-2022, 19:50:36
    #5
    hocam js fonksiyonunuzu buradan paylaşabilir misiniz
  • 26-12-2022, 19:51:59
    #6
    webeloper adlı üyeden alıntı: mesajı görüntüle
    hocam js fonksiyonunuzu buradan paylaşabilir misiniz
        function showMenu(selectedTask) {
            let menuDiv = selectedTask.parentElement.lastElementChild;
            menuDiv.classList.add("show");
            document.addEventListener("click", e => {
                if (e.target.tagName != "I" || e.target != selectedTask) {
                    menuDiv.classList.remove("show");
                }
            });
        }
  • 26-12-2022, 20:54:40
    #7
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    Anladığım kadarıyla, elimizdeki kodda bulunan button elemanlarının onclick özniteliğinde tanımlı olan showMenu fonksiyonunu, ayrı bir JavaScript dosyası olan main.js dosyasına taşımak istiyorsunuz. Bunu şöyle yapabilirsiniz:

    Yeni bir JavaScript dosyası oluşturun, örneğin main.js.
    HTML dosyasında, main.js dosyasını başvuran bir script etiketi ekleyin:

    <script src="main.js"></script>

    main.js dosyasında, showMenu fonksiyonunu tanımlayın:

    function showMenu(element) {
    // showMenu fonksiyonunun kodu buraya yazılır
    }

    HTML dosyasındaki button elemanlarından onclick özniteliğini kaldırın. Bunun yerine, button elemanlarına class özniteliği ekleyin, örneğin class="show-menu".

    main.js dosyasında, JavaScript'in addEventListener fonksiyonunu kullanarak button elemanları için tıklama olay dinleyicisi olarak showMenu fonksiyonunu ekleyin:

    const buttons = document.querySelectorAll('.show-menu');
    buttons.forEach(button => {
    button.addEventListener('click', showMenu);
    });

    Bu, button elemanları tıklandığında showMenu fonksiyonunun çağrılmasını sağlar, HTML'deki onclick özniteliği kullanılmadan.