相关疑难解决方法(0)

在执行document.ready之前,JQuery正在等待加载图像

更新: 此错误已被至少两个其他人确认.即使您没有阅读我的完整帖子 - 如果您正在阅读本文并使用JQuery 1.3.1,那么如果您依赖于在DOM完成时但在页面图像加载之前要执行的任何处理程序,请停止使用它.

Update2:感谢Tom(用户ID 20!)在jQuery bug跟踪器上发布了票证链接.

Update3 - 2009/01/28:该问题已得到妥善解决(对于那些无法恢复到1.2.6的人来说).对于目前使用1.3.1且需要立即修复的任何人,您可以阅读下面接受的答案以获取方向.谢谢约翰.


我刚刚升级到JQuery 1.3.1,我花了几个小时才意识到我心爱的人

$(function( ) {  ... }
Run Code Online (Sandbox Code Playgroud)

语法现在在执行函数体之前等待整个页面加载(包括图像).在尝试整合雅虎的菜单时,我看到了奇怪的行为.(幸运的是,我的页面上有一些缓慢的加载图像,这让我意识到了这个问题)!

我做了一个测试文件,因为我认为发生了一些更复杂的事情,但即使这个简单的文件,我仍然有相同的症状.

<head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>   
   <script>
    $(function() {    
      alert("Ready"); 
    });
  </script>
</head>

<body>      
  <img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" />       
</body>
Run Code Online (Sandbox Code Playgroud)

不同版本的JQuery有不同的结果:

  • 版本1.2.6中发生的情况是立即显示警报框,然后我看到后面加载的图像(预期和记录的行为).
  • 版本1.3.1中发生的是图像全部加载,然后才会显示警告框.

这是怎么回事!这是一个新功能(我无法想象为什么)或一个错误?

重要提示:这似乎只是IE中的一个问题,而不是Firefox

对不起,我没有一个公开可访问的动态图像文件,以便其他人更容易看到这一点.如果你想测试它我建议使用从谷歌图像中随机挑选的大图像文件并清除你的缓存.

jquery jquery-1.3

47
推荐指数
1
解决办法
1万
查看次数

获取当前的jQuery选择器字符串?

调用自定义插件时,如何获取当前选择器字符串?

$('my_selector p').my_plugin();
Run Code Online (Sandbox Code Playgroud)

my_selector p在我的脚本中输出.我该如何访问这个字符串?

string jquery jquery-selectors

24
推荐指数
2
解决办法
2万
查看次数

jQuery断言支持/防御性编程?

在jQuery中是否有任何内置支持用于基本断言检查,主要是"预期的返回元素数量"之类的东西.

例如,我可能有这样一个简单的陈述:

 $("#btnSignup").click(function() {
     return validateForm();
 );
Run Code Online (Sandbox Code Playgroud)

现在有很多理由$("#btnSignup")可能无法正确返回1项:

  • 您错误输入了按钮ID名称
  • 有人错误地重命名了
  • 它不存在于页面上
  • 错误地有两个带有id的元素
  • 您正在使用ASP.NET MVC,你意外地生成按钮的HTML HtmlHelper.Button(...)代替HtmlHelper.Submit().该Button(...)方法不会为按钮元素创建ID.

现在在这个实例(和许多实例)中,除非从选择器返回一个项目,否则我的应用程序将无法工作.所以我总是想被告知是否$("@#btnSignup")不返回1项.那我怎么能这样做?!我很好,如果这是一个例外或最好是一个警告框 - 所以如果我没有在调试器中运行,那么我可以被告知.

我正在寻找这样的语法 - 它的功能类似于.NET的Single()扩展方法.

 $("#btnSignup").assertSingle().click(function() {
     return validateForm();
 );

 or 

 $("#btnSignup").assertSize(1).click(function() {
     return validateForm();
 );
Run Code Online (Sandbox Code Playgroud)

我个人对此代码总是运行良好并且告诉那里存在问题的人.对于所有永恒运行这个额外代码显然不是性能问题.在这种情况下,如果#btnSignup不存在,我的代码就会被破坏.

我确信这个问题已经被打死了,并且有很多解决方案 - 但是有人能指出我的一些吗?

我没有看到任何内置于jQuery中的内容,并想知道最好的插件是什么.我更愿意只是在页面上有一些东西能够"监视"我,并告诉我是否有问题.我甚至不反对对错误报告服务进行AJAX调用.

debugging jquery

18
推荐指数
2
解决办法
4088
查看次数

删除了jQuery .selector属性,解决方法?

我试图让选择器用于调用当前脚本,但当然我需要的属性由于某种原因删除.

这有解决方法吗?这基本上就是我想要完成的事情:

(function($) {
    $.fn.myplugin = function(options) {
        return this.each(function() {
            console.log($(this).selector);
        });
    }
}(jQuery));

//Somwehere else:

$('.theClassISelected').myplugin();  //Should console.log('.theClassISelected')
Run Code Online (Sandbox Code Playgroud)

我需要.theClassISelected在控制台中看到(或者我用来调用函数的某种形式的原始选择器),但由于选择器属性已从jQuery中删除,因此它不再可能.

我不明白为什么它被删除了 - 我已经用Google搜索了这个问题一段时间了,我所看到的是2011年至2012年推荐该selector属性的StackOverflow答案.我想这在某些方面很有用,但现在不行了?

javascript jquery

7
推荐指数
1
解决办法
643
查看次数

在事件处理程序中获取选择

我用这个jQuery代码回答了这个问题:

$('input[type="checkbox"][name$="chkSelect"]').click(function() {
  $('input[type="checkbox"][name$="chkSelect"]').not(this).prop("checked", false);
});
Run Code Online (Sandbox Code Playgroud)

...它让我思考:必须有一种方法可以避免在事件处理程序中复制选择器.

我尝试$(this).selector但只返回一个空字符串. 这是一个演示.

有没有办法在事件处理程序中获取选择器文本?

jquery

5
推荐指数
1
解决办法
3495
查看次数

有没有办法获取jQuery选择器表达式文本?

我有一系列选择器,如:

var arr = [".discuss .title .post", ".post .desc" , ".eventlist .event"];
Run Code Online (Sandbox Code Playgroud)

我想遍历这个数组并在其上附加一个click事件.

for(var i in arr){
   $(arr[i]).click(function(){
      //here I need the selector i.e. arr[i] expression - for some css work
   });
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在单击回调函数中获取此选择器表达式?我经历了这个有类似问题的帖子:如何将jQuery选择器的表达式作为文本?

但正如那里所说,我找不到jQuery对象的任何"selector"属性.我试过这种方式:

for(var i in arr){
   $(arr[i]).click(function(){
      console.log(jQuery(this).attr('selector')); //This gives undefined
   });
}
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

javascript jquery

2
推荐指数
1
解决办法
442
查看次数