问题标签 [jquery-delegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

jquery - If function_1 contains $.each() functions and an on("load") function, how to make function_2 run afterwards?

I've spent the day reading about deferred, done, promise and callbacks as they seemed relevant to my problem, as well as the many posts on 'how do i run function_2 after function_1' etc.

So I understand the concept that when things happen asynchronously, you need to handle them specifically with one of the above approaches.

In my scenario, function_1 contains $.each() loops and an on.("load"...) function.

I want to run function_2 when function_1 has finished.

If I simply call:

They don't run sequentially and I am guessing because either $.each or on.("load"...) works asynchronously.

If I try to call function_2 with:

I get:

TypeError: function_1.done is not a function.

This leads me to think (and I could be completely off track by this point), that function_1 does not have that method available.

So my questions, possibly based on incorrect assumptions, are:

  • What type of object is returned from function_1 (if it contains $.each() and on.("load"...) functions?
  • Can I enforce that function_1 does have the done() method available?

jsFiddle

As well as the above approach using done(), I tried using a callback which didn't work, although perhaps my method of replicating something that takes time was not correct:

http://jsfiddle.net/rwone/xFX8a/2/

0 投票
1 回答
193 浏览

javascript - 如何找到委托的事件监听器?

通常在我正在使用的那个 DOM 节点上获取侦听器

但是,这不会显示通过委托添加的事件侦听器,例如

一种明显的方法是遍历 DOM 树并查看是否有任何父级将事件委派给手头的元素,同时调用$('selector').parent().data('events')直到找不到父级,但这并不让我觉得这是非常有效或标准的做事方式,我认为这种问题太常见了,没有更好的解决方案。

如何找到所有的事件监听器,包括委托的监听器?

0 投票
1 回答
82 浏览

jquery - 选择器何时存在的jQuery事件委托?

假设我想更改任何新创建的特定 DOM 元素的文本。例如:

(不是真正的 API,我意识到)

因此,如果我以编程方式创建<p class="change-this">并将其添加到 DOM(通过 jQuery 或其他方式),则会触发上述内容。这是jQuery可以做的吗?我所能想到的,就是当我以编程方式添加任何 HTML 时,执行一个$.trigger('creation')并准备好处理这些事件的处理程序。

0 投票
0 回答
30 浏览

jquery - 使用 JQuery .on 或 .delegate 更改动态内容,其中选择器不是动态内容

我到处寻找委托点击的例子,每个人都认为按钮是动态的。

场景:我有一个动态创建的 div 元素列表。我有一个按钮。列表之外。

该按钮在列表上工作,直到它动态刷新。有人可以提供一个刷新动态内容的工作示例,其中单击按钮位于动态内容之外?

0 投票
3 回答
201 浏览

javascript - 使用委托 jquery 时,JQUERY 事件触发不止一次

我在我的代码中使用委托 jquery,但是当它触发某些事件时,它会触发不止一次,我知道这是因为我已将optionclicked类的事件绑定到box-main类,但我处于我必须的情况将这些类相互绑定,因为使用optionclicked类的内容是动态生成的。是否有解决该问题的方法,以便事件仅触发一次意味着它调用一次函数并显示一次弹出操作并发布一次数据等。

0 投票
1 回答
126 浏览

javascript - 使委托的 jQuery 自动完成

我正在使用以下代码创建一个自动完成文本框。jQuery如下。

HTML如下。

自动完成适用于第一行。但是,当通过单击上述代码中的“添加行”按钮创建第二行时(一切正常),Auto_complete 只是不适用于后续行。我整理出我需要一个委派的处理程序。那么如何将我当前的 jQuery 选择器转换为委托的选择器呢?

我根据答案写了如下内容,但它仍然无法正常工作。

然后我继续使用以下内容。

它也失败了。我如何实现这一目标?

更新

在上面的例子中,事件的顺序是混乱的。只需要使用正确的语法

这使我的代码如下所示。

它完成了任务!

0 投票
1 回答
648 浏览

javascript - jQuery将值设置为委托输入字段

我的 HTML 代码如下。

它有一个名为“添加行”的按钮,可以动态添加更多行。

然后我有这个绑定,它在 slno 字段模糊期间调用更新函数。

函数update_unitcost如下。

在上面的函数中,我可以使用this选择器获取 的值,但是在下一行中设置值时,

它只是将每个“”类重置.cost为该特定数字。如何为各个委托行设置值?我也尝试了以下方法,但失败了。

0 投票
4 回答
98 浏览

javascript - 在jQuery中访问当前元素之前的元素

我有以下 HTML 表格。

当我单击“btn green”类的按钮时,我通过使用委托事件处理程序生成一个新行,如下所示。

但是,当我创建一个新行时,我需要上一行的“添加新”按钮消失。我可以在 jQuery 中使用 hide() 函数,但是如何访问上一行?以下不起作用。

0 投票
2 回答
2098 浏览

javascript - 单击行中的按钮时获取 HTML TR 的元素

我有以下动态HTML 行。

单击编辑按钮时,我需要将该特定行的单元格元素的值作为 JS 变量获取到 jQuery 中,我可以将其 AJAX POST 到另一个 PHP 页面以插入数据库。我试着像下面那样做,但没有成功。

它没有像我预期的那样捕获变量。我该如何实现这一目标?我需要将这些 SPAN 数据转换为三个变量。

0 投票
2 回答
333 浏览

jquery - Angularjs + jquery bootstrap-datepicker委托在第一次点击时不触发

我尝试在按钮单击时动态添加日期选择器,并且我已委托日期选择器单击,该单击在第一次单击时不起作用,在第二次单击时被触发,我尝试过的代码如下

找不到原因,先谢谢了。

plnkr 样本

复制错误的步骤:

  1. 点击Add Datepicker按钮
  2. 将在 DOM 中添加日期选择器组件,然后单击日期选择器

观察到的

第一次点击不起作用,它将从后续点击开始