【问题标题】:This as parameter in other function in jquery这作为 jquery 中其他函数中的参数
【发布时间】:2018-05-03 22:27:10
【问题描述】:

我试图在用户单击一行后将 $(this) 作为参数发送给其他函数,而不是在单击按钮后将一些文本附加到单击的行。

我的问题是我只想追加到最后点击的行,而不是所有行并且只追加一次文本

当我在行上单击 10 次而不是单击按钮时,文本会附加 10 次。

这是我的代码:

$('#Page').on('click', '.row', function(e) {
  var ths = this;
  addText(ths);
});

function addText(ths) {
  $('.addtext').click(function() {
    $(ths).append('teeeeeeeeeeeeeeeeeeeeeest');
    $('#tools').hide();
    ths = null;
  });
}

【问题讨论】:

  • 天哪,天哪,那里有多个问题……你能提供完整的代码吗? HTML 也是如此
  • When I click 10 times on row and than click button, text append 10 times - 一般来说,不要试图理解为什么要这样做,每次单击时都会添加一个新的单击事件...如果适合,请使用 jQuery one() 或从选择器中删除所有绑定事件,并且只绑定到所需的元素。另一方面,为什么每次点击行时都要绑定一个点击事件?
  • 尝试在函数 addText(ths) 中添加 html 而不仅仅是文本。确保 HTML 有一个类或 id,然后在原始的 on('click'...) 调用中使用 if 语句进行检查。
  • 你能不能也给我们看看你的 HTML

标签: javascript jquery parameter-passing


【解决方案1】:

检测点击的行并像这样附加它:

$('.row').on('click', function() {
    $(this).append('Test');
});

工作小提琴:https://jsfiddle.net/cr29y1tc/35/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多