2012-10-03 3 views
0

내 사이트에서 .change() 함수를 사용하고 있습니다. 여기를 클릭하면 사용자가 제품 수량을 선택할 수 있습니다. 내가 가지고있는 문제는 내 차트가 12 팩이 아니라 6 팩만 연결하는 것입니다. 나는 방화범을 조사하고 JS가 두 개의 버튼을 만들었다는 것을 알아 냈다. 나는 6 개 팩에 링크 된 버튼이 12 개 버튼의 버튼에 의해 중첩되기 시작한다고 믿는다.jQuery .change() 함수 문제

궁극적으로 나는 가격에 비례하여 버튼 링크를 변경하고 싶습니다. 누구든지 내가 이것을 달성하기 위해 아래 코드를 추가해야하는지 알고 있습니까?

이 코드는 템플릿이기 때문에 내가 하나 개의 링크 버튼, 내가 표현 엔진을 사용하여, 그래서있어 두 번째는 자동으로 생성되고있다

<script type="text/javascript"> 
var message = new Array(); 
message[1] = "$15.00"; 
message[2] = "$25.00"; 
$(document).ready(function(){             
$("#item_select").change(function() 
{ 
    var message_index 
    message_index = $("#item_select").val(); 
    $(".price-item h3").empty(); 
    if (message_index > 0) 
    $(".price-item h3").append(message[message_index]); 
    }); 
}); 
</script> 


{p_cartlink} 
<a href="http:// class="button_atc atc_{url_title}"></a> 
{/p_cartlink} 

문제는 내가 당신에게 싶지 않아한다

제품 이름 SLEEP-12 and SLEEP-6 제품 ID를 사용해야합니다. JS에서 각 버튼에 대한 필요 ID를 생성 한 다음 버튼을 활성화 및 비활성화 할 수있는 방법입니다. 예를 들어 6 팩을 선택하면 6 팩 버튼이 나타나고 12 팩은 비활성화됩니까?

+0

하나의 버튼을 숨기고 다른 버튼을 표시 할 수 있습니다. 또는 하나의 버튼 만 가지고 선택한 항목에 따라 href를 변경하지 않는 이유는 무엇입니까? –

답변

0

페이지에 링크 버튼 2 개가있는 대신 하나만 있습니다. 그런 다음 색인이 변경되면 해당 링크 버튼의 href 속성을 업데이트합니다.

+0

하나의 링크 버튼 만 가지고 있습니다. 표현 엔진을 사용하고 있습니다. 따라서 두 번째가 자동으로 생성됩니다. – NewBoy

2

당신이 매우 추한 해킹되었고, 코드가 안된이

$(document).ready(function() { 
    $("#item_select").change(function() { 
     var message_index 
     message_index = $("#item_select").val(); 
     // get the correct button 
     var $button = $('.price-item right .button_atc').eq(message_index-1); 
     // hide button - not the correct one 
     $('.price-item right .button_atc').not($button).hide(); 
     // show correct button 
     $button.show(); 
     $(".price-item h3").empty(); 
     if (message_index > 0) $(".price-item h3").append(message[message_index]); 
    }); 
});​ 
+0

젠장, 그게 깔끔한 모양입니다. 내 대답은 지금 매우 바보 같다. – OptimusCrime

+0

그게 나를 위해 작동하지 않았다 – NewBoy

0

처럼 그것을 할 수 있습니다,하지만 난 그것을 작동합니다 thiiink.

그것을 시도하고 당신이 어떤 문제가 있으면 알려 주시기 바랍니다 :

<script type="text/javascript"> 
var message = ["$15.00","$25.00"]; 
$(document).ready(function(){ 
    // Init to make sure we display the correct button @ load 
    $("#item_select").trigger('change'); 

    // The change-function 
    $("#item_select").on('change'.function() { 
     var message_index = $("#item_select").val(); 
     var message_indexn = message_index.split(' '); 
     var message_id = 0; 
     for ($i = 0; i < message_indexn.length; i++) { 
      if (/^[\d]+$/.test(message_indexn[i])) { 
       message_id = message_indexn[i]; 
       break; 
      } 
     } 

     $(".price-item h3").empty(); 
     if (message_index > 0) 
      $(".price-item h3").append(message[message_index-1]); 

     $('.price-item .button_atc').each(function() { 
      if ($(this).attr('href') == 'http://store.bodyworksforme.com/ShoppingCart.asp?ProductCode=SLEEP-'+message_id) { 
       if ($(this).is(':hidden')) 
        $(this).show(); 
      } 
      else { 
       if ($(this).is(':visible')) 
        $(this).hide(); 
      } 
     }); 
    }); 
}); 
</script> 
+0

메신저 그래서이 코드는 모든 제품을 통해 따라야하므로 http://store.bodyworksforme.com/ShoppingCart.asp?ProductCode=SLEEP은 적합하지 않습니다 – NewBoy

0

겠습니까이 일을?

<select id="item_select"> 
    <option value="6">6 pack</option> 
    <option value="12">12 pack</option> 
</select> 

$('.button_atc').bind('click',function(){ 
var val = $('#item_select').val(); 
window.location = "store.bodyworksforme.com/ShoppingCart.asp?ProductCode=SLEEP"+val; 
}); 

원하는 경우 버튼에 id를 설정하고 제품에 고유하게 설정할 수 있습니다.

+0

건배 메이트, 그 중 하나가 작동하지 않습니다, 나는 뭔가 JS 표현 엔진 대신하고 있다고 생각 – NewBoy