오늘 아침 2 시간 동안 jQuery 기능이 페이지의 한 부분에서 작동하지만 다른 부분에서는 작동하지 않는지 확인하려고했습니다.패딩이 jQuery 선택기를 중단합니까?
마지막으로 컨테이너의 수직 채우기로 좁혔습니다.
내 CSS에서이 있던 경우 :
다음div.collapsiblePanel {
padding: 0px 1%;
}
, jQuery를 통해, 나는 부모 (.collapsiblePanel)의 요소를 찾을 수 있고, 자식 요소를 그 DIV로 통과하고 조작 할 수 있습니다. 그러나, 나는이 내 스타일 시트에 그냥이 한 가지를 변경하는 경우 :
div.collapsiblePanel {
padding: 5px 1%;
}
그런 다음 jQuery를 는 부모 (.collapsiblePanel를) 찾을 수 있지만 아이들을 통과 할 수 없습니다.
크레이지, 맞습니까? 무슨 일이 벌어지고 있는지에 관한 이론? 나는 이걸 생각하면서 내 jQuery와 뭔가 관계가 있다고 생각했지만 궁극적으로 CSS 문제였다. 마크 업/CSS/코드의
의 요청에 따라, 좀 더 조각 :
(겉으로는) 작동하지 않는 특정 jQuery를 기능 :
function finishUp(ajaxContainer,originalContainer,loadingAlert) {
$(ajaxContainer).find("input.btnSave").css("border","3px solid red");
var saveButtonn = $(ajaxContainer).find("input.btnSave");
console.log(ajaxContainer);
console.log(originalContainer);
console.log(loadingAlert);
console.log(saveButton);
$(ajaxContainer).find("input.btnSave").css("border","3px solid red").click(function(){
alert("you clicked the save button");
savePanel($(this));
});
};
무슨 일이야 것은, 이전의 기능 부하 후 AJAX를 통해 내용을 가져온 다음 컨테이너를 표시하면이 함수가 들어 와서 버튼에 클릭 이벤트를 첨부합니다.
당신이 볼 수 있듯이 거기에 여분의 로깅 코드가 있습니다. CSS 수직 패딩이 '0'으로 설정되면, 방화범 입력은 각각의 적절한 객체 이름을 기록합니다. CSS 수직 패딩을 다른 것으로 변경하면 마지막 객체 (saveButton)가 Firebug에서 빈/빈으로 다시 나타납니다.
html로 : 그 DIV가 이전의 jQuery 기능에 의해 생성 및 콘텐츠로드되고 있음을
<div class="ajaxEditPanel editablePanel collapsiblePanel" style="display: block;">
<form>
<fieldset class="sideLabels dividers">
<legend>Edit Realtionship Information</legend>
...the form...
<div class="formItem formButtons"
<input value="save" class="button btnSave" type="button">
<input value="cancel" class="button btnCancel" type="button">
</div>
</fieldset>
</form>
</div>
참고. 처음에는 타이밍 문제라고 생각했지만 DOM에 아직로드되지 않은 객체에 이벤트를 첨부하려고했습니다. 그러나 이것이 왜 페이지에서 다른 곳에서 똑같은 기능이 작동하는지 설명하지 못했습니다. 이 작업을하거나하지 않을 수있는 변수 하나가 CSS 패딩 비트가되었습니다. 현재 함수가 작동하는 페이지의 부분에서 컨테이너에 수직 패딩을 추가하면 jQuery가 자식 요소를 선택하지 못하게됩니다.
이러한 경우 모두를 보여주는 데모를 올려 경우에, 나는 누군가가 잘못하고있는 것을 당신에게 말할 것이다 보장 , 또는 오른쪽. – mkoryak
그럴 것 같지 않습니다 ... 어떻게 아이들을 횡단하고 있습니까? –
문제가되는 HTML 단편도 게시 할 수 있다면 도움이 될 수 있습니다. –