여러 개의 선택 목록이있는 페이지가 있고 jQuery의 .change() 함수를 사용하여 선택 목록이 변경 될 때 선택 항목 옆에있는 텍스트를 변경합니다 명부. 페이지가로드 될 때 이미 모든 범위에 텍스트가 있습니다 (텍스트는 각 범위마다 다릅니다). 문제는 페이지가 .change() 함수를로드 할 때 모든 선택 목록을 반복하여 모든 범위의 텍스트를 변경한다는 것입니다. 사용자가 목록에서 다른 항목을 선택할 때까지 스팬의 텍스트가 변경되는 것을 원하지 않습니다. 사용자가 선택한 항목을 변경하더라도 텍스트가 있는지 여부는 중요하지 않으므로 텍스트를 바꿀 때 텍스트를 바꿀 뿐이므로 선택하지 않아도됩니다. 페이지가로드됩니다. 그래서, 페이지를로드 할 때 .change() 함수가 실행을 멈추게하려면 어떻게해야합니까? 코드 :페이지로드시 jQuerys.change()가 실행되지 않도록 유지
JS/jQuery를
$(document).ready(function() {
$("select").change(function() {
var txt = $(this).val();
$(this).next('span').text(txt);
}).trigger('change');
});
HTML (반복 횟수를) 도와
<select name="animal[]">
<option value="dog" selected="selected">dog</option>
<option value="cat">cat</option>
<option value="bird">bird</option>
<option value="snake">snake</option>
</select>
<span class="out">text that shouldn't be replaced until user changes selected item</span>
감사합니다!
.trigger('change')
그것은 당신이 단지 바인딩 $("select").change(function() { ... })
핸들러를 호출하는 무슨이다 :
글쎄, 내가 바보처럼 보이게 만들었지 만 원래 문제없이 문제를 풀었을 때 추가 했어. 설명 주셔서 감사합니다! – Scott