Jquery OnClick не работает в IE7 - PullRequest
1 голос
/ 23 июля 2011

Это мой код.Это работает для Firefox, Chrome, но не в ie7.

arr делает (число + 1) для каждой строки ..

$("#div-id1 a").attr("onclick", function (arr) {
  return "document.getElementById('row1').value+=" + arr;
});
$("#div-id2 a").attr("onclick", function (arr) {
  return "document.getElementById('row2').value+=" + arr;
});

<input id="row1"  type="text" name="row1" value="" />
<input id="row2"  type="text" name="row2" value="" />

Мои коды js находятся между этим.

jQuery(function($){...code...});

Я добавляю onclick, потому что ссылки выглядят следующим образом.

<a>Hello World</a>

Вывод кода:

<a onclick="document.getElementById('row1').value+=1">Hello World</a>

Может кто-нибудь показать мне рабочий пример

Ответы [ 3 ]

4 голосов
/ 23 июля 2011

Вы делаете это неправильно.

Будет ли работать добавление функции к атрибуту onclick? да, в некоторых браузерах, но вы не используете нормализованные события jQuery. Способ установки события click в jQuery заключается в использовании click(fn), или bind('click', fn), или live('click', fn)

.

Кроме того, поскольку вы еще не показали, где находится ваш скрипт по отношению к HTML, возможно, что элементы dom еще не существуют. Использование live делегирует событие документу, чтобы он продолжал обнаруживать новые элементы, соответствующие селектору. В качестве альтернативы вы можете использовать событие document ready:

Полная форма:

jQuery(document).ready(function($){...code...});

Сокращенная форма:

jQuery(function($){...code...});

Для получения дополнительной информации вы должны прочитать jQuery api .

2 голосов
/ 23 июля 2011

Не устанавливать атрибут onclick - передать функцию в функцию jquery click

$("#div-id1 a").click( function () {
    /* Code here */
});

Можете ли вы объяснить подробнее об обр? Вам нужно будет внести некоторые изменения в код, чтобы он работал с щелчком мыши вместо attr.

2 голосов
/ 23 июля 2011

Поместите его в $(document).ready(...:

$(document).ready(function() {
    $("#div-id1 a").attr("onclick", function (arr) {
      return "document.getElementById('row1').value+=" + arr;
    });
    $("#div-id2 a").attr("onclick", function (arr) {
      return "document.getElementById('row2').value+=" + arr;
    });
});

Пожалуйста, прочитайте http://api.jquery.com/ready/

...