문제

선택 드롭 다운 목록을 작성하고 있습니다. 이 목록은 선택한 모든 요소 (사용자가 수행)를 숨겨진 필드 형태의 컨테이너 <div>에 추가합니다. 이 선택에는 선택 컨테이너에서 제거 할 수있는 옵션을 제공하는 링크가 있습니다. 새로운 선택이 이루어질 때마다 코드는 사용자가 Reomve 링크를 클릭하는 경우 선택을 제거하는 기능을 자동으로 바인딩합니다.

<div id = "selectedCategories">
카테고리 #1 remove_link
<입력 유형 = "hidden"value = "9524"name = "records [] /> < /div>
<select>
<옵션> 카테고리 #2 < /옵션>
<옵션> 카테고리 #3 < /옵션>
< /선택>

드롭 다운 목록에서 새로운 선택이 이루어질 때마다, 이전에 선택한 모든 요소는 삭제 함수와 함께 "다시 결합"되어야합니다. 어떤 이유로 든 모든 요소가 이전을 잃어버린 것처럼 보이기 때문에이 작업을 수행해야합니다. 새로운 것을 추가 할 때 바인딩.

이것은 Fire Fox와 Safari에서 매우 잘 작동하지만 IE에는 전혀 작동하지 않습니다.. 선택한 모든 요소에 대해 매번 다시 바인딩하더라도 모든 바인딩이 손실되고 작동하는 유일한 바인딩은 삭제 기능을 추가하고 묻은 마지막 요소입니다.

내 질문은 다음과 같습니다. 이에 대한 작업장이 있습니까? 아니면이 문제를 어떻게 해결합니까? 불행히도 IE는 가장 널리 사용되는 인터넷 브라우저입니다.

고맙습니다

도움이 되었습니까?

해결책 3

나는 운이없는 라이브 기능을 사용했는데, 아마도 뭔가 잘못하고있을 것입니다. 저를 위해 효과가있는 것은 다른 기능을 추가하거나 다시 반드하기 전에 기능을 풀고있었습니다.
따라서 기능을 이와 같은 클릭 이벤트에 바인딩하면.



 $('#deleteRecord1').bind('click',function() 
   { 
        // function here ...
   }
 );

$ ( '#deleterecord2'). bind ( 'click', function () {// 여기서 ...});


나중에 레코드를 삭제할 때이 방법을 레코드에 반창해야합니다.



 $('#deleteRecordId').unbind('click');
 $('#deleteRecordId').bind('click',function() 
   { 
        // function here ...
   }
 );

이 경우 "ID"는 선택된 모든 사람이 선택한 모든 고유 ID를 나타냅니다.이 예에서는 숫자 2에 해당합니다.

다른 팁

라이브 기능을 사용하기 위해 올바른 버전의 jQuery를 사용하고 있다고 확신하십니까? 비교적 새롭기 때문에 최신 버전을 사용하고 있는지 확인해야합니다.

당신은 사용할 수 있습니다 라이브() 기능은 페이지, 현재 및 미래의 요소의 각 인스턴스에 바인딩 할 수 있습니다. 이렇게하면 반창해야합니다.

$("a.removeLink").live("click", function() {
  $(this).next("input").remove();
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top