내가 clone
에 테이블 행을 몇 가지 코드가 발생합니다.jQuery를이 요소를 복제하고 그것의 아이 버튼 클릭 이벤트가 여러 번
click
이벤트는 다음과 같이이다 :
$('body').on('click', '.edit, .cancel', function(e)
{
e.preventDefault();
// Do something here...
});
사용자는 대화 상자의 닫기 버튼을 클릭 한 후 나는 $(".widget-container").remove();
와 테이블의 컨테이너를 제거합니다. 이후에 사용자가 대화 상자를 다시 열면이 컨테이너를 다시 만들 수 있습니다.이 경우 컨테이너와 테이블이 다시 DOM에 삽입됩니다.
이
내가 대화를로드하는 데 사용하는 코드이며 HTML의 :$.ajax({
url: 'getDialogUrl',
type: 'GET',
cache: false,
success: function(html)
{
$(html).insertAfter('.someOtherExistingDOMElement');
....
}
문제는이 두 번째 시간에 호출 될 때 clone.find('.edit').click();
가 두 번 click
이벤트를 발생한다는 것입니다. 대화 상자를 닫고 다시 열면 클릭이 3 번 발생합니다.
remove
은 DOM에서 제거 된 요소에 바인딩 된 모든 이벤트를 지울 것이라고 생각했습니다. 이런 일은 일어나지 않은 것 같네요.
내가 잘못 복제 한 것 같습니다. .clone(false)
과 .clone(false, false);
을 시도했지만 동일한 동작을 유지했습니다.
왜 이런 일이 발생합니까? 내가 여기서 뭘 잘못하고 있는지에 대한 아이디어는?
당신은 바이올린을 제공 할 수 있습니까? – Satpal
대화 시작 스크립트를 보여줄 수 있습니까? 문제는 알고 있지만 확실하지는 않습니다. –
@ Karl-AndréGagnon : 질문 업데이트 ... –