2012-05-18 2 views
0

다음 Jquery 코드는 단지 40 % 기능입니다. php로 동적으로 생성 된 몇 개의 제품 모듈을 가지고 있습니다. 선택 콤보 상자가 포함되어 있고 옵션을 선택하면 jquery 코드가 실행되지만 불행하게도 첫 번째 모듈의 경우에만 실행됩니다.이 jquery에 대한 호출

<div class="ajax_bar"> 

      <select id="ajax_call" size="1" name="Weitere Produkte"> 
       <option value='50'>Weitere Produkte</option> 
       <option value='100'>weitere 100</option> 
       <option value='150'>weitere 150</option> 
      </select> 

     </div>  

$(document).ready(function(){ 

    $("#ajax_call").change(function(){ 
     var domain = document.domain; 
     var count = $('#ajax_call :selected').val(); 
     var $parent = $(this).closest(".product_box"); 
     var modul_title = $("h4", $parent).text(); 
}); 
+4

, 다음 문제는 당신이 ID "ajax_call"여러 요소를 가지고있다. 이 경우 클래스 이름으로 변경하십시오. ID 값은 문서에서 고유해야합니다. –

+0

'}'와')'의 균형이 맞지 않습니다. – jmar777

+0

제임스가 많이 감사드립니다 !! – lgt

답변

0

다른 모듈의 각 콤보 상자에 대해 동일한 ID가 생성되어 있습니까? 제 생각에 그것은 아마 첫 번째 것이 실행되는 이유 일 것입니다. id 대신에 클래스를 사용하여 change 이벤트를 트리거 할 수 있습니다.

<select class="ajax_call" size="1" name="Weitere Produkte"> 
    $(".ajax_call").change(function(){}) 
0

선택기가 잘못되었습니다. ID로 선택하면 하나의 요소에 대해서만 작동합니다. 일반 선택을 위해 클래스를 사용하십시오. 클래스 안에 ajaxbar 클래스의 select 요소가 있어야합니다.

$(document).ready(function(){ 
    $(".ajax_bar select").change(function(){ 
     var item=$(this); 
     var domain = document.domain; 
     var count = item.val(); 
     var $parent = item.closest(".product_box"); 
     var modul_title = $("h4", $parent).text(); 
     alert("count : "+count) 
    }); 
}); 

이 함께 작동합니다 N 당신이 제공 한 동일한 HTML 마크 업의 수 (각 선택 요소에 대한 고유 ID를 사용하는 가정. 당신이해야한다. ID의가 고유해야하지 않으면 요소)

JsFiddle 샘플 http://jsfiddle.net/AZAZn/5/ 내가 제대로 이해했다면

+0

+1을 피들! –

관련 문제