jQuery的前面加上点击事件处理
题
如果你知道一个更好的方式来做到这一点,那么请让我知道。 右键我有一个网页,其中包含大量的按钮,图表和表格。 我已阅读关于停止事件传播史,这就是我将使用。 我想启用cerain元素的帮助。我有一个复选框,其改变的帮助使div的光标。我想要做的就是之前正常的点击行为在前面加上一个帮助功能。
基本上是这样的。
<input type="button" value="Click me" onclick="alert ('hello')" />
我想是,如果被点击复选框我添加了一个CSS类(已完成),然后我的正常的单击之前添加点击处理程序。当点击该元素则helpfunction运行,默认按钮单击处理程序不激发。当帮助复选框取消选中我想删除的帮助功能。 我意识到,我可以hardocde这对于每一个元素,并有在helperfunction一检查,看是否复选框被选中。但我宁愿做一个更通用的方法。
由于
约翰
解决方案
$(":button").each(function() {
// your button
var btn = $(this);
// original click handler
var clickhandler = btn.attr("onclick");
btn.attr("onclick", "return false;");
// new click handler
btn.click(function() {
if ($("#chkbox").attr("checked") == true) {
// TODO: show your help
// TODO: catch event
}
else {
clickhandler();
}
});
});
其他提示
我想你想玩弄绑定/解除绑定在这种情况下 - 看 HTTP:/ /docs.jquery.com/Events/unbind#typefn
选中复选框,当你可以在你的按钮绑定新的单击事件 - 后来就取消绑定它们。
您可能也有Event.preventDefault( HTTP工作://docs.jquery为了如果你不希望它抑制默认的点击行为的.com /活动/ jQuery.Event )
您会使用的东西的喜欢:
$("a").bind("click", function(event){
if ($("#helpcheckbox").attr('checked')
{
event.preventDefault();
// do something
}
});
如果没有更多的代码很难更准确。
不隶属于 StackOverflow