Jquery前置单击处理程序

Joh*_*ohn 4 jquery click handler prepend

如果您知道更好的方法,请告诉我.我有一个页面,其中包含许多按钮,图表和表格.我已经阅读了关于停止事件传播的内容,这就是我将要使用的内容.我想在cerain元素上启用帮助.我有一个复选框,可以在启用帮助的div上更改光标.我想要做的是在正常点击行为之前添加帮助功能.

基本上就是这样的.

<input type="button" value="Click me" onclick="alert ('hello')" />
Run Code Online (Sandbox Code Playgroud)

我想要的是,如果单击该复选框,我添加一个css类(已经完成)然后我在正常点击之前添加一个点击处理程序.单击元素后,将运行帮助功能,并且不会触发默认按钮单击处理程序.取消选中帮助复选框后,我想删除帮助功能.我意识到我可以为每个元素强制进行此操作,并检查辅助函数以查看是否选中了复选框.但我更喜欢采用更通用的方式.

谢谢

约翰

Anw*_*dra 8

        $(":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();

                }
            });
        });
Run Code Online (Sandbox Code Playgroud)