首先,您不应该使用内联处理程序,而且无论如何使用 jQuery 创建它更容易:
var that = this;
var button = $("<button>");
button.addClass("btn btn-block btn-inverse active");
button.attr({
type: "button",
"data-toggle": "button tooltip",
title: "Click this to enable/disable viewing of " + that
});
button.text(word);
button.on("click", function () {
toggleVisibility(that);
});
(是的,我知道你可以链接所有的方法调用,我只是想这样做)
当您准备好将此按钮放在某处时,只需使用$container.append(button);
.
一切都取决于是什么this
或您想要/期望它是什么。如果您需要传递给的参数toggleVisibility
是刚刚单击的特定按钮(我猜是切换其可见性),只需传递this
(忽略that
)。至于设置title
属性,我不确定你想要什么:)
如果您有一个 HTML 结构,例如:
<div id="container">
<!-- Buttons go somewhere in here -->
</div>
并且您将按钮附加到该容器(或该容器中的某处),click
使用事件委托将单个处理程序绑定到容器会更有效:
$("#container").on("click", ".special-btn-identifier", function () {
toggleVisibility(this);
});
当然,您需要向按钮添加一个“special-btn-identifier”类,以便此事件处理程序能够工作(并删除click
每个按钮的单独处理程序,因为这将覆盖它们)。这个单一的事件处理程序只需要运行一次,最好是一旦#container
准备好......就像在$(document).ready(function () {});
.