Почему этот Javascript работает в Firefox, а не в Internet Explorer? - PullRequest
0 голосов
/ 07 августа 2009
  <img src="images/butAdd.png" onclick="addField(1,1);" />

  <div id="divField"></div>
  <script type="text/javascript">
    function addField(count, type) {
        var bid = document.getElementById("bid").value;
        $("#divField").append("<a href='#' onClick='javascript:removeField(\"#bow" + bid + "\"); return false;'><img src='images/closeSmall.png' /></a>");  
        }

    function removeField(bid) {
        $(bid).remove();
    }
 </script>

Рассмотрим этот код Javascript, который отлично работает в Firefox, но не в Internet Explorer.

Функция addField() работает, а removeField() - нет.

Есть идеи, почему это не сработает, или какие-нибудь обходные пути?

Ответы [ 5 ]

3 голосов
/ 07 августа 2009
Событие

onclick не должно иметь «javascript:» перед кодом. Такая строка должна быть только тогда, когда вы используете 'href =', чтобы поместить код JS.

3 голосов
/ 07 августа 2009

Попробуйте это.

function addField(count, type) {
                            $("#divField").append("<a href='#' onClick='javascript:removeField(); return false;'><img src='images/closeSmall.png' /></a>");      
                    }

                    function removeField() {
                            $("#bid").remove();
                    }
2 голосов
/ 27 августа 2009

Я думаю, что это связано с переменной 'bid'. Значение для переменной присваивается только тогда, когда вы вызываете addField (), и оно локально для этого метода.

В removeField () значение 'bid' не определено, поэтому оно не работает.

Попробуйте изменить removeField () следующим образом

function removeField() {
    var bid = document.getElementById("bid").value;
    $(bid).remove();
}
0 голосов
/ 07 августа 2009

попробуйте изменить:

var bid = document.getElementById("bid").value;

до

var bid = $("#bid").val();

Я думаю, что в том, как IE делает .value против firefox *, есть одна странность

0 голосов
/ 07 августа 2009

Ваш addFiled может выглядеть так:

$("<a href='#'><img src='images/closeSmall.png' /></a>").appendTo("#divField")
  .click(function() {
    $("#bid").remove();
  })
...