다음은 기존의 모든 기존 onlick 코드에 preventDefault를 추가하여 JQuery로 바꾸는 데 사용하는 코드입니다. 그것은 효과가있는 것처럼 보이지만, 문제가 있다고 생각할 수 있습니까? 우리는 jQuery로 완전히 이동할 계획이지만, 이는 단지 임시 수정 사항 일뿐입니다. 이 작업을 수행하는 것이 더 빠르거나 깨끗합니까?표준 자바 스크립트 onclick을 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>
이 솔루션은 괜찮습니다. 아무런 문제가 없습니다. –
tryItOutRob() 함수는 어디에 정의되어 있습니까? –
http://codereview.stackexchange.com/ – John