用jquery点击按钮替换标准的javascript onclick

时间:2014-07-17 06:00:19

标签: javascript jquery

下面是我用来将preventDefault添加到我现有的所有遗留代码中的代码,用JQuery替换它。它似乎工作,但你能想到它的任何问题。我们计划完全转向jQuery,但这只是一个interum修复。这样做有更快或更清洁吗?

<html>
    <head><title>Test</title>
    <script src="includes/jquery/jquery-1.5.1.min.js?t=20130606"></script>
    </head>
<body>
    <form name="testing">

    <script>
        var robtesting = 100;

        </script>

    <button id="test">0</button>
    <button onclick="alert('1');">1</button>
     <button onclick="alert(this.form.tagName); alert(robtesting); ">1</button>
    <button >2</button>
    </form>
    <script>


     jQuery('#test').click(function(){
        alert('0');    
     });

         jQuery(document).ready(function(){
    jQuery('button').each(function(){
        var button = jQuery(this);
        var hasclick = button.attr("onclick")
        var hasJQueryClick = false;
        var eventsObject = button.data("events");
        if(typeof eventsObject != 'undefined'){
            jQuery.each(eventsObject, function(i, e) {
                if(i == 'click'){
                    hasJQueryClick = true;
                }
            });
        }

        if(typeof hasclick == 'function'){
            button.removeAttr("onclick");
            button.click(function(event){
               event.preventDefault();
               this.tryItOutRob = hasclick;
               this.tryItOutRob();
            });
        } else if(!hasJQueryClick) {
           button.click(function(event){
               event.preventDefault();
           });
        }

    });
}) ;
    </script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

它确实有效,但每次加载页面时,这都是JavaScript的额外工作量。我建议打印整个更新的HTML并用它替换旧的。