You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery点击事件中if-else逻辑失效问题求助

问题修复方案

原代码的核心问题是初始化阶段的if-else逻辑完全错误:

  • $(".sendToBox1").on("click") 并不是判断按钮是否被点击,而是立即给按钮绑定点击事件,并且返回jQuery对象(永远为真)。这导致第一个if分支永远执行,$sendToBox和$selectedBox只会指向第一个按钮和第一个盒子,第二个按钮根本没绑定点击事件,自然无响应。

修复方案1:分别绑定点击事件

直接给两个按钮单独绑定点击逻辑,逻辑清晰直观:

$(document).ready(function() {
  var $input1 = $('.textField');

  // 绑定send to box1的点击事件
  $(".sendToBox1").click(function() {
    $(".box1").append($input1.val());
    $input1.val('');
  });

  // 绑定send to box2的点击事件
  $(".sendToBox2").click(function() {
    $(".box2").append($input1.val());
    $input1.val('');
  });
});

修复方案2:用数据属性优化代码(更简洁可扩展)

如果后续要增加更多盒子,这种方式不需要重复写绑定逻辑:

首先修改HTML,给发送按钮添加data-target属性,指定对应的目标盒子:

<input class="textField" type="text">

<div class="sendBtn" data-target=".box1">send to box 1</div>
<div class="sendBtn" data-target=".box2">send to box 2</div>

<div class="box1">box 1</div>
<div class="box2">box 2</div>

然后用事件委托绑定统一的点击逻辑:

$(document).ready(function() {
  var $input1 = $('.textField');

  // 给所有.sendBtn绑定点击事件
  $(".sendBtn").click(function() {
    // 获取当前按钮对应的目标盒子选择器
    var targetSelector = $(this).data('target');
    // 插入文本并清空输入框
    $(targetSelector).append($input1.val());
    $input1.val('');
  });
});

内容的提问来源于stack exchange,提问作者dtd439

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:07:50