为什么放置在标记内时放jQuery代码不起作用

时间:2012-09-22 16:46:41

标签: jquery asp.net

我经常发现自己处在一个简单的jQuery代码的地方 -

jQuery(document).ready(function () {
    jQuery("input[type='text']").click(function () {
        this.select();
    });
});

放在“head”标记内部时不起作用,但在母版页中body标记结束之前移动此代码段工作正常。是否存在我缺少的基本JavaScript / jQuery原则。

2 个答案:

答案 0 :(得分:1)

可能有多种原因,其中一些原因是:

  • 您正在此代码块后面加载jquery.js文件 - 解决方法是将代码移动到文件链接下面
  • 虽然.ready()几乎可以保证其中的代码只有在document完成加载后才会触发,但您尝试选择的文本元素仍有可能无法准备/加载 - 此处的解决方案是使用.on()方法:jQuery("input[type='text']").on('click', function () {...}));

答案 1 :(得分:-1)

我在过去遇到过类似的问题,其中脚本并不总是触发尚未准备好的元素。

尝试使用$(window).load()代替$(document).ready()