2014-03-04 4 views
0
Event.observe(
    'size_list', 
    'change', 
    itemOptions["_hiddenSkuField"].getSkuOfProductBySize 
); 

size_list은 몇 가지 옵션이있는 드롭 다운 목록입니다. 따라서, 이것은 HTML을 생성하는 함수를 호출해야하지만, 이것은 발생하지 않습니다. 말할 필요도없이 Chrome과 Firefox에서 완벽하게 작동합니다.Event.observe가 IE에서 트리거되지 않았습니다.

디버그하려고 할 때 문제가 무엇인지 알 수 없으며 myFoo 코드 또는 심지어 .observe 코드를 입력하지 않아도됩니다.

getSkuOfProductBySize: function() { 
     document.getElementById('product-type').value = ''; 
     document.getElementById('sku_hidden').value = ''; 
     var selectedIndex = document.getElementById('dropdown_options').value; 
     for (var i=0; i<itemOptions["_hiddenSkuField"].products.length; i++) { 
      if (itemOptions["_hiddenSkuField"].products[i].size == selectedIndex) { 
       document.getElementById('sku_hidden').value = itemOptions["_hiddenSkuField"].products[i].sku; 
       itemOptions["_hiddenSkuField"].backupResponse = itemOptions["_hiddenSkuField"].products[i]; 
       itemOptions["_hiddenSkuField"].callShowHtmlOfButtons(itemOptions["_hiddenSkuField"].products[i]); 
       return; 
      } 
     }; 
    } 

itemOptions["_hiddenSkuField"]은 내가 소유하고있는 전역 개체입니다. : D

업데이트 : 기능이나 관찰자 주변에 간단한 alert()을 넣으려고했는데 작동하지 않습니다. 또한 click 이벤트로 시도해 보았습니다. 성공하지 못했습니다 ...

저는 프론트 엔드 개발을 매우 드뭅니다. 그러나 오늘 제 투쟁 끝에, 나는 IE가 왜 그렇게 싫어 하는지를 압니다.

당신이 prototype.js에를 사용하고 있지만 (다른 해결책을 찾을 수없는 경우) 여전히 대안으로 시도 할 수 있기 때문에 그것은, 못생긴 솔루션의 약간의
+0

여기에 관련된 'HTML'을 게시 할 수 있습니까? – MaxiWheat

+0

@MaxiWheat - 답변을 업데이트했습니다. :) 그것은 HTML을 생성하기위한 함수입니다. – Syspect

+0

PrototypeJS의 어느 버전입니까? - 가장 최근 공개 버전은 1.7.1입니다. - 동일한 ID를 가진 페이지에 여러 요소가 있습니까? –

답변

1

- jQuery를 가진 관찰 이벤트 바인딩 :

$('#dropdown_options').bind('change', function(){ 
     itemOptions["_hiddenSkuField"].getSkuOfProductBySize(); 
}); 
1

프로토 타입에서, 위에서 언급 한

$('size_list').observe('change', function(evt){ 
    itemOptions['_hiddenSkuField'].getSkuOfProductBySize(); 
}); 

나는 건축가에 훨씬 간단한 방법이 페이지가 있다고도 생각 될 것이다 '혼자 객체가 필요한 모든 데이터를 것, 그리고 당신이 같으면 있도록 DOM에 놀고있는이 "신 오브젝트"가 필요 없습니다.

관련 문제