我正在动态地使用jQuery(我的意思是在运行时)将span元素添加到我的页面的DOM中:
// create add task button
$(document.createElement("span"))
.attr({ id: activityNameHyphened + "-NewButton", name: activityNameHyphened + "-NewButton" })
.addClass("smallButton")
.appendTo(cell1)
.click(CreateTaskRow(ActivityName));
Run Code Online (Sandbox Code Playgroud)
问题是最后一行:我认为它会添加CreateTaskRow(ActivityName)作为span的onclick事件的处理程序,就像:
<span onclick="CreateTaskRow(ActivityName);"></span>
Run Code Online (Sandbox Code Playgroud)
这就是我想要的 - 但是当我在浏览器中运行它时,我可以看到使用调试器,在这一行它会立即运行该函数.
如果我可以更清楚:CreateTaskRow()在我尝试将其添加到onclick时运行(我希望它仅在用户实际单击span时运行).
知道我做错了什么吗?(如果我的问题不够明确,请告诉我)
您实际上正在调用该函数并将结果传递给.click()事件处理程序.尝试使用闭包(匿名函数):
.click(function() {
CreateTaskRow(ActivityName);
});
Run Code Online (Sandbox Code Playgroud)
在click事件被触发之前,关闭不会运行.
| 归档时间: |
|
| 查看次数: |
2801 次 |
| 最近记录: |