jquery:将事件添加到新创建的元素

use*_*003 5 jquery events

我通过jquery添加了一个新元素.现在我想要一个函数在单击元素时触发.我知道有很多答案,但它们似乎对我不起作用.不知道我在这里做错了什么.

我试过了:

new_ele = "<a>click me</a>"
new_ele.click(function() {alert('xxxx');}); 
other_ele.append(new_ele);
Run Code Online (Sandbox Code Playgroud)

在附加new_ele之前失败.

我也尝试过(而不是上面的第二行)

new_ele.onclick = function() { alert('blah'); };
Run Code Online (Sandbox Code Playgroud)

这会附加元素,但单击时没有任何反应.

new_ele.on('click',function() {alert('ddd');});
Run Code Online (Sandbox Code Playgroud)

在附加元素之前,这也会失败.

jfr*_*d00 9

将其更改为:

new_ele = $("<a>click me</a>");
new_ele.click(function() {alert('xxxx');}); 
other_ele.append(new_ele);
Run Code Online (Sandbox Code Playgroud)

为了添加jQuery .click()处理程序,您需要一个可以调用该.click()方法的jQuery对象.您的代码试图这样做:

"<a>click me</a>".click(function() {alert('xxxx');}); 
Run Code Online (Sandbox Code Playgroud)

这显然是行不通的,因为字符串上没有click方法.相反,您需要通过调用$()它将该HTML字符串转换为实际的jQuery对象.