다음 jQuery 코드가 있습니다. 이 같은 두 개의 이벤트 리스너를 작성하고 있습니까? 다음 코드는 an.errorjQuery 코드가 'Object expected'오류를 반환합니다.
$(document).ready(function() {
$('tr').hover(
function() {
$(this).css('background-color', '#FFFF99');
$(this).contents('td').css({
'border': '1px solid red',
'border-left': 'none',
'border-right': 'none'
});
$(this).contents('td:first').css('border-left', '1px solid red');
$(this).contents('td:last').css('border-right', '1px solid red');
});
$('#radioButtonImageSourceContainerId input:radio').click(function() {
if ($(this).val() === 'fromFile') {
addVisibility("from-file");
removeVisibility("from-url");
}
else if ($(this).val() === 'fromUrl') {
removeVisibility("from-file");
addVisibility("from-url");
}
})
});
다른이 개 기능은 처음 요소를 찾을 수 있는지 확인
function addVisibility(elemId) {
document.getElementById(elemId).style.display = "";
if (document.getElementById(elemId).style.visibility == "hidden") {
document.getElementById(elemId).style.visibility = "visible";
}
}
function removeVisibility(elemId) {
document.getElementById(elemId).style.display = "";
if (document.getElementById(elemId).style.visibility == "visible") {
document.getElementById(elemId).style.visibility = "hidden";
}
}
'찾기()'바로 바로 아이들을 보지 않는다, 그것은 재귀 적으로 검색합니다. 'children()'은 여기로가는 길입니다. DOM 아래로 한 단계 이동합니다. –
@Cory : 찾을 수있는 중첩 테이블이 없으면 예. OP의 'contents()'(마크 업 부족)의 오용을 감안할 때 확실하지 않았습니다. 그러나 예, 가장 가능성이 높은 '어린이들'이 의도됩니다. – RightSaidFred
...'getElementsByTagName'을 사용할 수있을 때 실제로 더 빠를 수 있기 때문에 어떤 사람들은 여전히'find()'를 선호합니다. 궁극적으로 그것은'var tds = $ (this) .find ('td') ...이어야합니다. tds.first() ...; tds.last() ...;'* (또는 'children'을 사용하여 동일하거나, 다시 선택하는 대신 캐시하는 것이 중요합니다.) * – RightSaidFred