簡體   English   中英

下拉菜單上的javascript click事件

[英]javascript click event on dropdown menu

一個應用程序,我有四個dropdwon -menu,其中的一個是通過選擇一個較早的位置填充的...這是自動填充的...不響應click事件
我通過創建一個動態UL LI Itens的答案進行搜索,發現了這一點:

    function getModelos(response) 
    {
        var obj = JSON.parse(response);
        try
        {   
            var ul = document.getElementById("modelo");
            var modelos = obj.modelos;
            var x = document.getElementById("modelo");

            while(x.length > 0)
            {
                x.remove(0);
            }
            for(i=0;i<modelos.length;i++)
            {
                var li = document.createElement("li");
                var a = document.createElement("a");
                a.appendChild(document.createTextNode(modelos[i].modelo));
                a.setAttribute("href","#");
                a.setAttribute("data-value",modelos[i].id+",.modelo");
                li.appendChild(a);
                ul.appendChild(li);
            }
      }
      catch(err)
      {
          alert("ERRO: "+err);
      }
  }

我也發現了一個委托的點擊事件:

    $(".dropdown-menu li a").click(function()
    {
        var selText = $(this).text();
        $(this).parents('.dropdown').find('.dropdown-toggle').html(selText+'                             <span class="caret"></span>');
        var valor = $(this).data('value');
        var options = valor.split(",");
        $(this).parents(".dropdown").find(options[1]).val(options[0]);
        if(options[1] == ".marca")
        {
            pedeModelos(selText);
        }
    });

所有dropdowm-menus先前定義的單擊LI的響應,但是創建的下拉菜單不會

我是javascript / Bootstrap / JQuery的新手,我需要一種方法來遵循,我將為您提供任何幫助。 謝謝

問題是您如何委派click事件。 如果您的代表團不在創建動態元素的事件之外,那將是行不通的。 您對click事件的引用應在生成動態html的同一函數中進行。

例如 :

<input type="button" id="btn" value="GenerateHTML"/><br/>
<div>       
</div>

$("#btn").click(function()
{
    $("div").append("<ul class='dropdown-menu'><li><a href='#'>1</a></li><a href='#'>2</a></ul>");
    $(".dropdown-menu").find("li a").click(function()
    {
        alert();
    });

});

http://jsfiddle.net/pkhout3x/

像這樣:

$(".dropdown-menu").on("click","li a",function() {blah});

閱讀有關直接事件和委托事件的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM