필자는이 질문에 대한 답변을 필사적으로 찾고 있었지만 아무것도 발견하지 못했습니다. 현재 사용자 정의 '속성에서 HTML5 데이터 -yyy 속성으로 전환하여 작성중인 웹 사이트의 코드를 개선하고 있습니다. 이제 내 문제를 heres.jQuery removeAttribute() not working
$("#test ul li").click(function(event){
$(this).toggleClass("selected");
if($(this).hasClass("selected")){
if(jQuery.trim($("#input_value").val())){
$(this).data("special",{"value":jQuery.trim($("#input_value").val())});
}
}
else{
$(this).removeAttr("data-special");
}
});
다음 코드는 특정 li 요소를 클릭하면 시작됩니다. 클래스가 토글되고 토글 링 된 후 (즉 단어?) 스크립트는이 요소에 토글 된 클래스가 있는지 여부를 확인합니다. 클래스가 없으면 (문제가있는 곳) 스크립트는 데이터 "special"을 제거하여 데이터를 삭제해야합니다. 이것은 전혀 일어나지 않습니다!
기능 외부
$("#test ul li").removeAttr("data-special");
를 추가하는 경우, 그것은 모두 괜찮 예상대로 작동합니다. 어떤 아이디어?
감사합니다. 재미 있은만큼, 이것이 내가 시작한 일이다. 코드가 작동하지 않는 것 같아서, 내가 답을 찾아봤을 때 http : //bugs.jquery를 발견했을 때 버그가 있었음에 틀림 없다. co.kr/ticket/10784를 작성했으며 데이터 yyy를 제거시 속성으로 취급하는 것으로 이해했습니다 (또는 오해). 한 가지 더 또는 처음에는 .data()를 사용하지 마십시오. .data()를 사용하지 않아야합니까? 너는 그걸 좋아하지 않니? –
@ BenediktÓmarsson : 천만에요. '.data()'를 사용할 때, 복잡한 데이터를 저장해야 할 때 유용 할 수 있습니다. 예를 들어, 개체를 저장하는 것 같습니다. '{value : "특별한 값"}'실제로 속성이 추가되고 제거되는 객체가 필요하다면'.data()'가 유용 할 수 있습니다. 그러나 만약 당신이하고있는 모든 일이 그 하나의'data-'속성의 값을 읽는다면'.attr() '을 사용하는 것이 조금 빠르며'jQuery . 캐시 '. –
나는 알고있다. 필자가 쓰고있는 응용 프로그램은 복잡한 측면에서 조금 (적어도 나를 위해, 사업에 새로운) 조금 있습니다. 저는 .attr() 사용자에게 익숙했으며 사용자 정의 속성 (