追加功能不会向先前创建的关闭菜单或前一行添加关闭菜单

时间:2017-06-22 05:17:21

标签: javascript php jquery

我正在创建在线测验。我正在注册页面添加人才。人才存储在数据库中。人才通过ajax在注册页面中显示。当用户在文本字段中键入任何字母时。显示人才列表。当我点击任何人才。特定人才被添加到另一个列表中。我正在尝试在另一个列表中创建一个关闭菜单。如果用户点击关闭菜单,人才会被删除。当我点击人才列表时,追加功能会在第一时间将关闭菜单添加到另一个列表,当我点击人才列表第二次追加功能时将关闭菜单添加到第二行中的另一个列表工作正常,除了一个附加功能是将关闭菜单添加到先前创建的关闭菜单或第一行。当我再次点击人才列表时。它将关闭菜单添加到第三行,但它再次将关闭菜单添加到先前创建的关闭菜单或前两行。

追加功能是否可能不会向前一行或先前创建的关闭按钮添加关闭按钮。

你能帮帮我吗?

$(document).ready(function(){
    $('.textfield').keyup(function(e){  
                    var query_string = $.trim($(this).val());
        //alert(query_string.length);
                var count=query_string.length;
        if(count!==0)
                {                           
         setTimeout(function(){

                     $.ajax({              
            type: "post",
            url: "autosuggestion.php",
            data: { name:query_string},
                                                cache:false,
            success: function(data)

            { 

                                                    $('#dropdownlist').html(data);

                                                    $('#dropdown  li').one('click',function(e)
                                                {                          


                                                                             var return_value = $(this).text();
                                                                             var value= $('<li></li>').text(return_value).addClass('appenddata');
                                                                             $('#skill').append(value);
                                                                             var code='&#10006';
                                                                             var a=$('<span></span>').html(code);
                                                                             $('.appenddata').append(a);     


                                                });

            }
        });
                 },1500);    

        }  
        });
});

php文件  人才从此文件中提取并显示在注册页面中。

<?php
mysql_connect('localhost','root','');
mysql_select_db('questions');
if(isset($_POST['name']))
{            
    $username = mysql_real_escape_string(trim($_POST['name']));
    $sql = "SELECT `subject` FROM `suggestion` WHERE `subject` LIKE '$username%'";
    $myquery = mysql_query($sql) or die(mysql_error());

    if(mysql_num_rows($myquery) !=0)
    {               echo '<div id="dropdown">';
        while(($row = mysql_fetch_array($myquery ))!==false)
        {          
            echo '<li>'.$row['subject'];
        }
                            echo '</li></div>';

    }
    else
    {   
                            echo '<div id="innerinput12"> Kindly select from Drop-down list</div>';
                            echo "<script type='text/javascript'>var id = document.getElementById('innerinput12');
                                 setTimeout(function(){id.style.display = 'none';},2500); </script>";
    }



}



?>

1 个答案:

答案 0 :(得分:1)

我发现了。我犯的错误是将关闭菜单附加到li元素。关闭菜单被添加到有序列表的所有li元素中,因为我没有指定位置或索引号。

我使用.eq()jquery函数来定义有序列表中li元素的位置。

 $('.appenddata').eq(i).append(a);