일부 DOM 요소를 조작하는 Javascript가 있습니다. 문제는, 이해가 안 돼요 왜이 작동하는지는 결코 좋은 점이 아닙니다. 나는 객체 지향 자바 스크립트와 자바 스크립트 베스트 프랙티스에 대해 더 많은 것을 배우려고 노력 중이므로 조직이 좀 이상하게 보일 수있다.
기본적으로 CSContent
개체 내에서 DOM을 조작하는 두 가지 방법을 래핑합니다. 나는 해당 객체의 인스턴스 인 content
을 $(document).ready
에 만들고 일부 이벤트는 content
의 함수에 바인딩합니다. 그러나, 나는이 기능들이 $(document).ready
종료 후에도 어떻게 호출 될 수 있는지에 대해 혼란 스럽다. 그렇다면 content
이 범위를 벗어 났으며 그 기능을 사용할 수 없습니까?
function CSContent() {
var tweetTextArea = document.getElementById('cscontent-tweet'),
tweetTextElement = document.getElementById('edit-cscontent-cs-content-tweet'),
charCountElement = document.getElementById('cscontent-tweet-charactercount');
this.toggleTweetTextarea = function() {
$(tweetTextArea).slideToggle();
};
this.updateTweetCharacterCount = function() {
var numOfCharsLeft = 140 - tweetTextElement.value.length;
if (numOfCharsLeft < 0) {
$(charCountElement).addClass('cscontent-negative-chars-left');
}
else {
$(charCountElement).removeClass('cscontent-negative-chars-left');
}
charCountElement.innerHTML = '' + numOfCharsLeft + ' characters left.';
};
}
$(document).ready(function() {
var content = new CSContent();
//If the twitter box starts out unchecked, then hide the text area
if ($('#edit-cscontent-cs-content-twitter:checked').val() === undefined) {
$('#cscontent-tweet').hide();
}
$('#edit-cscontent-cs-content-twitter').change(content.toggleTweetTextarea);
//Seems wasteful, but we bind to keyup and keypress to fix some weird miscounting behavior when deleting characters.
$('#edit-cscontent-cs-content-tweet').keypress(content.updateTweetCharacterCount);
$('#edit-cscontent-cs-content-tweet').keyup(content.updateTweetCharacterCount);
content.updateTweetCharacterCount();
});
'콘텐츠'에 대한 액세스 권한이없는 위치의 예를 보여줄 수 있습니까? –
@Pekka : id가 'edit-cscontent-cs-content-tweet' 인 요소에서 키를 누르거나 누를 때? –
@Marcel ahh, 그가 의미하는 바입니다! 그것은 종결이다. 그러나 당신은 이미 당신의 대답에 그것을 설명하고 있습니다. +1 하겠지만 오늘은 투표에서 벗어났습니다. –