我正在创建在线测验。我在注册页面添加人才。人才是储存在数据库中的。人才显示在注册页面通过ajax。当用户在文本字段中键入任意字母时。将显示人才列表。当我点击任何人才的时候。这个特定的天赋会被添加到另一个列表中。我正在尝试在另一个列表中创建一个关闭菜单。人才将删除,如果用户点击关闭menu.when我点击人才列表,追加功能添加关闭菜单到另一个列表在第一次,当我点击人才列表第二次追加功能添加关闭菜单到另一个列表在第二行一切正常,除了一个是追加功能是添加关闭菜单到以前创建的关闭菜单或第一行作为well.when我再次点击人才列表。它将close菜单添加到第三行,但再次将close菜单添加到先前创建的close菜单或前两行。
追加函数是否可能不会将关闭按钮添加到以前的行或先前创建的关闭按钮。
你能帮帮我吗?
$(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>";
}
}
?>
发布于 2017-06-22 15:31:24
我想通了。我犯的错误是将关闭菜单添加到li元素。关闭菜单被添加到有序列表的所有li元素中,因为我没有指定位置或索引号。
我使用.eq() jquery函数来定义li元素在有序列表中的位置。
$('.appenddata').eq(i).append(a);
https://stackoverflow.com/questions/44690681
复制相似问题