我正在创建在线测验。我正在注册页面添加人才。人才存储在数据库中。人才通过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='✖';
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>";
}
}
?>
最佳答案
我明白了。我犯的错误是将关闭菜单附加到 li 元素。关闭菜单被添加到有序列表的所有 li 元素中,因为我没有分配位置或索引号。
我使用 .eq() jquery 函数来定义 li 元素在有序列表中的位置。
$('.appenddata').eq(i).append(a);
关于javascript - 追加功能不会将关闭菜单添加到先前创建的关闭菜单或先前的行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44690681/