Jquery onclick对IE7不起作用

时间:2011-07-23 13:18:13

标签: jquery onclick getelementbyid attr

这是我的代码。它适用于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 个答案:

答案 0 :(得分:4)

你做错了。

onclick属性添加函数会起作用吗?是的,在某些浏览器中,但你没有充分利用jQuery的规范化事件。设置点击事件的jQuery方法是使用click(fn),或bind('click', fn)live('click', fn)

此外,由于您没有显示脚本与HTML相关的位置,因此dom元素可能尚不存在。使用live会将事件委托给文档,以便继续检测与选择器匹配的新元素。或者,您可以使用document ready事件:

长篇:

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

简短形式:

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

有关详细信息,请阅读jQuery api

答案 1 :(得分:2)

将其放入$(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/

答案 2 :(得分:2)

不要设置属性onclick - 将函数传递给jquery click函数

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

你能进一步解释一下arr吗?您需要对代码进行一些修改,以使其与click而不是attr一起使用。