Bunu yalnızca Internet Explorer'da bozulduğunu söyleyebilirim. Birden çok dinamik < seçkisi > öğelerini oluşturan bir komut dosyası var ve bunlar için bir onchange olayı ekler. Onchange olayı, Firefox'ta hiçbir problem yaşamadan patlar, ancak Internet Explorer'da asla ateş etmez. Geliştirici Araç Çubuğu'nu kullanarak DOM'ın listelenen doğru etkinliğe sahip olduğunu görüyorum, hiçbir zaman tetiklenmiyor.Dinamik olarak eklenen SELECT öğesi, Internet Explorer'da onchange olayı tetiklenmiyor
<html>
<head>
<script language="javascript">
function addSelect() {
var se = document.createElement('select');
se.setAttribute("onchange", "alert('Dynamic')");
se.options[0] = new Option("1", "1");
se.options[1] = new Option("2", "2");
se.options[2] = new Option("3", "3");
se.options[3] = new Option("4", "4");
var plh = document.getElementById("ph");
plh.appendChild(se);
}
</script>
</head>
<body onload="addSelect()">
<select name="something" onchange="alert('Static')">
<optgroup label="set1">
<option value="1">1</option>
<option value="2">2</option>
</optgroup>
<optgroup label="set2">
<option value="3">3</option>
<option value="4">4</option>
</optgroup>
</select>
<div id="ph">
</div>
</body>
</html>
statik uyarı mesajı ince çıkageldi, ancak dinamik bir Internet Explorer'da bir şey yapmaz: Aşağıdaki kodu sorunu aşağı haşlanmış ettik. Bu çalışmayı başka bir yerde gördüğüm için neredeyse olumluyum ama başka örnekler bulamıyorum. Bunu işe almak için bir yol gören/tanıyan var mı?
Ya olay/tetikleyici :) –
orijinal konu bağlamak için JQuery kullanmak JQuery kullanır ve standart özellikler sorunun bir parçası olduğu gibi olayları tedavi etmek için çalışıyor. IE sadece dizeleri ayrıştırmak değil, büyük bir acıdır ... –
Evet, bir onchange olayı atamak için jQuery'nin .attr() işlevini kullanmaya çalışırken sorunlar yaşadım. Elem.onchange = function() {blah'ın doğrudan DOM ataması; } benim için güzel çalıştı. – kdawg