[英]replace standard javascript onclick with jquery click on buttons
下面是一些我用来将preventDefault添加到所有现有的旧onlick代码中的代码,用JQuery代替。 它似乎可行,但是您能想到它的任何问题吗? 我们计划完全迁移到jQuery,但这只是一个临时解决方案。 是否有更快或更清洁的方法可以做到这一点?
<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>
它确实可以工作,但是每次加载页面时,这都是JavaScript的额外工作量。 我建议打印出全部更新的HTML,并用它替换旧的HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.