이것은 jQuery로 무엇을 할 수 있고 할 수 없는지 배울 수 있고, 부분적으로 성공한 것입니다. jQuery 아코디언 입력, 어떻게 아코디언을 닫지 않고 여전히 입력을 제어 할 수 있습니까?
나는 두 이름과 설명이 될 스팬뿐만 아니라 클릭 수 독립적 버튼 포함 아코디언 생성 (아코디언 즉,이 열리지 않거나 가까이.)복용 그 개념, 나는 이름과 설명을 텍스트 입력/텍스트 영역으로 바꾸어서 이름과 설명을 편집 가능하도록 만들었습니다. 이것은 상당히 잘 작동했습니다.
그러나 문제는 버튼에 사용 된 것과 동일한 기술을 사용하여 입력 및 텍스트 영역에서 사용할 때 커서를 클릭하면 다른 위치로 커서를 이동할 수 없다는 것입니다. 이 문제를 해결할 방법이없는 것 같습니다.
전혀 작동하지 않는 event.preventDefault()를 시도했습니다. 부분적으로 작동하는 동작을 제공하는 event.stopPropagation()을 시도했습니다. 그리고 stopPropagation과 같은 방식으로 false를 반환했습니다.
누구든지이 문제에 대한 통찰력을 제공 할 수 있는지 궁금합니다.
아래의 jQuery 자바 스크립트가 포함되어 있지만 훨씬 간결한 예제에서는 여기에서 jsfiddle 링크 (http://jsfiddle.net/Rakshasas/xFhN3/)를 제공하여 내가하는 일을 훨씬 명확하게 보여줍니다. 펼치기 위해 아코디언을 클릭하면 스팬이 숨겨지고 입력이 표시됩니다. 입력을 클릭해도 아코디언이 닫히지는 않지만 커서 위치를 지정할 수는 없습니다.
또한 입력에서 텍스트를 변경하려고하면 아코디언을 닫으면 의도 한 결과 인 범위가 실제로 업데이트됩니다. 이것이 나의 개념이 부분적으로 작동한다는 것을 말하는 이유입니다.
감사합니다.
$(function() {
$(".accordion").accordion({
header: 'h3',
collapsible: true,
active: false,
change: function(event, ui) {
var id = ui.newHeader.find('input:last').val();
$("#status").text(id);
ui.newHeader.find('div.headerContainer input.name').val(ui.newHeader.find('div.headerContainer span.name').text());
ui.newHeader.find('div.headerContainer textarea.desc').val(ui.newHeader.find('div.headerContainer span.desc').text());
ui.oldHeader.find('div.headerContainer span.name').text(ui.oldHeader.find('div.headerContainer input.name').val());
ui.oldHeader.find('div.headerContainer span.desc').text(ui.oldHeader.find('div.headerContainer textarea.desc').val());
ui.newHeader.find('div.headerContainer span').hide();
ui.newHeader.find('div.headerContainer input, div.headerContainer textarea').show();
ui.oldHeader.find('div.headerContainer span').show();
ui.oldHeader.find('div.headerContainer input, div.headerContainer textarea').hide();
}
});
$('input.name, textarea.desc').click(function(event){
event.stopPropagation();
});
$(".delButton").button({
icons: {primary: 'ui-icon-trash'},
text: false
}).click(function(event) {
//Display user friendly text
return false;
});
});
음, 확인할 수 있습니다. 크롬에서 그냥 시도하고 괜찮습니다. 필자는 Firefox 7.0.1을 사용하고 있었지만 Internet Explorer 9에서도이 기능을 시험해 보았습니다. – Rakshasas
jquery는 현재 사이트에 따라 몇 가지 브라우저를 지원합니다. 놀람은 아니지만 실망 스럽습니다. http://docs.jquery.com/Browser_compatibility – EKet