Javascript on('click')奇怪行为-选择具有相同类名的所有元素

Javascript on('click')奇怪行为-选择具有相同类名的所有元素,javascript,jquery,Javascript,Jquery,当用户点击某个元素时,我试图将该元素中包含的文本添加到输入字段private_users中。问题是,如果列表如下所示: <ul> <li class="user_li_selection">Jane</li> <li class="user_li_selection">John</li> <ul> <input type="text" id="private_users" /> 我所针对的输入字段只是一个简单

当用户点击某个元素时,我试图将该元素中包含的文本添加到输入字段private_users中。问题是,如果列表如下所示:

<ul>
<li class="user_li_selection">Jane</li>
<li class="user_li_selection">John</li>
<ul>
<input type="text" id="private_users" />
我所针对的输入字段只是一个简单的文本输入,如下所示:

<ul>
<li class="user_li_selection">Jane</li>
<li class="user_li_selection">John</li>
<ul>
<input type="text" id="private_users" />
在从列表中选择项目之前,请确保选择输入字段,否则不会出现问题。

请尝试以下操作-

试试这个-


您可以使用e.target获取单击的li的文本,如下所示:

$(document).ready(function () {
  $(".user_li_selection").on('click', function (e) {
    e.preventDefault();
    var text = $(e.target).text();
    $("#private_users").val(text);
  });
});

您可以使用e.target获取单击的li的文本,如下所示:

$(document).ready(function () {
  $(".user_li_selection").on('click', function (e) {
    e.preventDefault();
    var text = $(e.target).text();
    $("#private_users").val(text);
  });
});

罪魁祸首是这样的:

if ( !$('.user_li_selection').click() )
当文本框失去焦点时,模拟单击所有列表元素


我不确定你想用这句话做什么,if语句没有真正意义。

罪魁祸首是这句话:

if ( !$('.user_li_selection').click() )
当文本框失去焦点时,模拟单击所有列表元素


我不确定您想用这一行做什么,if语句没有真正意义。

arr=current_string.split','中的I是什么;?如果我修改这行代码,它似乎工作得很好:尽管有更好的方法来构建字符串。您正在尝试这样做吗?哦,这是我之前删除的脚本的一部分。它是无关的。@OswaldoAcauan-是的,它是perciselyOk,除了i这个东西,没有什么不对的,它的行为似乎和预期的一样。如果这对您不起作用,则错误必须位于其他位置。arr=current_string.split','中的i是什么;?如果我修改这行代码,它似乎工作得很好:尽管有更好的方法来构建字符串。您正在尝试这样做吗?哦,这是我之前删除的脚本的一部分。它是无关的。@OswaldoAcauan-是的,它是perciselyOk,除了i这个东西,没有什么不对的,它的行为似乎和预期的一样。如果这不适用于您,则错误必须位于其他位置。将动态添加.user\u li\u选择元素,这就是OP使用事件委派的原因。他的剧本实际上是正确的。在事件处理程序中,这总是指单击的元素,因此不需要使用e.target.the.user\u li\u selection元素是动态添加的,这就是OP使用事件委派的原因。他的剧本实际上是正确的。在事件处理程序中,这总是指单击的元素,因此没有必要使用e.target。似乎不起作用。我认为@FelixKling是正确的,因为问题可能在于脚本的其他部分。我已将其余部分添加到我的原始帖子中。不起作用-同一问题,行为与JSFIDLE示例不同。它仍然适用于我-只需从JSFIDLE复制JS并粘贴到页面中即可。复制和粘贴会破坏脚本-自动建议框不再出现。似乎不起作用。我认为@FelixKling是正确的,因为问题可能在于脚本的其他部分。我已经在我原来的帖子中添加了其余的内容。不起作用-同一个问题,行为与JSFIDLE示例不同。它仍然适用于我-只需将JS从JSFIDLE复制并粘贴到您的页面复制&粘贴会破坏脚本-自动建议框不再出现。我试图在输入字段失去焦点时隐藏自动建议框。然后我想您可以简单地删除if语句。单击将返回一个jQuery对象,因此此表达式始终为false。我试图在输入字段失去焦点时隐藏自动建议框。然后我想您可以简单地删除if语句。单击将返回jQuery对象,因此此表达式始终为false。