代码之家  ›  专栏  ›  技术社区  ›  user3117628

Jquery:在所选插件完成后执行某些操作

  •  1
  • user3117628  · 技术社区  · 9 年前
    function mychosen(){
        $(".chosen-select").chosen();
        mytooltip();
    }
    
    function mytooltip(){
    
        $(".active-result").each(function () {
            $(this).attr("data-toggle","tooltip");
        });
    }
    
    $(document).ready(function () {
        mychosen();
    });
    

    .selected()添加

     <ul><li>
    

    项目添加到html。li元素具有“活动结果”类。然而,当我尝试更改它们时,它不起作用,因为我的第二个函数在选择完成之前被调用,所以这段代码不起作用。如何在所选完成后调用第二个函数?

    2 回复  |  直到 9 年前
        1
  •  2
  •   Payal2299    9 年前
    function chosen()
    {
    //your code
    flag = true;
    }
    
    function mychosen(){
        $(".chosen-select").chosen();
        if(flag) mytooltip();
        else //settimer 
    }
    
    function mytooltip(){
    
        $(".active-result").each(function () {
            $(this).attr("data-toggle","tooltip");
        });
    }
    
    //global varible
    var flag = false
    $(document).ready(function () {
    
        mychosen();
    });
    
        2
  •  0
  •   user3117628    9 年前

    因此,所选择的插件仅在单击按钮后添加html。这就是为什么我的代码不工作。对于将来有类似问题的任何人,这是应该做的:

    $(document).ready(function () {
        $(".chosen-select").chosen();
        $(".chosen-container").click(addtitles);
        // We need to execute the Jquery every time the button gets clicked.
    });
    

    则在函数中:

    function addtitles(){
    
        var i = 0;
    
        $(".active-result").each(function () {
            $(this).attr("data-toggle","tooltip");
            $(this).attr("title",serializedResult[i]);
            $(this).attr("data-placement","right");
            $(this).parent().css("overflow","visible")
            $(this).tooltip();
            i++;
        });
    }