2013-05-30 1 views
0

플러그인을 두 번 이상 호출하려고하는데 첫 번째 이후에는 작동하지 않습니다. 내 코드 내에서플러그인이 두 번 이상 호출되는 이상한 동작

이상한

은 내가 div 내에서 ul 있습니다. 이 확인 작업

$("#optionalSearchOptions ul").append("<li> 
<div class='button' style='position:relative'> 
<select id='"+ id+"' style='width:200px'> <option></option></select></div></li>"); 

:

<div id="#optionalSearchOptions"> <ul> </ul> </div> 

그래서 나는 그에게 추가 다른 코드가 있습니다.

따라서 ul에 추가 할 때 추가 기능을 실행할 때마다 트리거가 설정됩니다.

$ (창) .trigger ('convertBoxes', [id, title]);

document.ready 내에서 방아쇠를 수신합니다.

$(window).on('convertBoxes', function (event, param1, param2){ 

    var tmpName = "#" + param1 ; 
    newSelect2(tmpName, param2); 
}); 

그래서 각각의 새로운 linewSelect2 기능이 실행될 때 만들었습니다. 나는 그 이유를 잘 모르겠지만, 그것은 단지 처음에 그것을 실행 - 각각의 새로운 li에 대한

function newSelect2(id, name) { 

    console.log(id); 

    $(id).select2({ 
     placeholder: name 
    }); 

} 

이 정상적으로는 select2 플러그인을 실행

함수 newSelect2입니다.

아무도 도와 줄 수 있습니까? 첫 번째 선택 2는 마크 업의 일환으로 만든 후

$("#optionalSearchOptions ul") 

:이 코드 http://jsfiddle.net/dwhitmarsh/MfJ4B/5

시도가 다음 다른

+0

"나는 때마다 APPEND가 run._입니다 설정 트리거 UL 인증에 추가하고 때 _So 알고"

는 직접 아이 선택기 여기 일을하고 바이올린이 청소 참조 이 일을 했니? 나는 당신의 코드에서 그것을 보지 못한다. – Jared

+0

코드가 많기 때문에 코드를 추가 할 필요가 없지만 콘솔 로그에서 실행 중임을 알 수 있습니다. – Dan

+0

문제는 select2가 두 번 이상 실행되는 이유입니다. 이유는 알 수 없습니다. – Dan

답변

2

문제를 추가 동영상을 추가 - 여기

는 JS 바이올린입니다 그것은 ul을 추가합니다. 이제 selector가 추가 된 마크 업 select2 내부의 ul과 일치하고 두 번째 select2가 첫 번째 내부에서 생성됩니다.

대신 당신은 일치에게 옵션 DIV의 직접적인 아이 인 UL을 의미

$("#optionalSearchOptions>ul") 

말해야한다. 양자 택일로 ul에 클래스를 던져 깨지기 쉽게 만든다. 어디 이 http://jsfiddle.net/MfJ4B/9/