0
  1. 本例中的 domEle 是什么?我可以在 jQuery.com 中看到解释 - jQuery.each(collection, callback(indexInArray, valueOfElement)),但对我来说仍然很难理解什么是“valueOfElement”?任何人都可以为我澄清一下吗?

    $("button").click(function () {
      $("div").each(function (index, domEle) {
        $(domEle).css("backgroundColor", "yellow"); 
        if ($(this).is("#stop")) {
          $("span").text("Stopped at div index #" + index);
          return false;
        }
      });
    });
    
  2. 如果我会这样写:$("input[name='newsletter']").next().text(" is newsletter"); jquery 只会找到完全匹配,如果我这样写:$("input[name$='newsletter']").next().text(" is newsletter");jquery 会找到完全匹配并且也可以说“时事通讯”的值?

  3. 作者使用此代码:

    $(document).mouseup(function(e) {
                if($(e.target).parent("a.signin").length==0) {
                    $(".signin").removeClass("menu-open");
                    $("fieldset#signin_menu").hide();
                }
            });      
    

    每当用户按下文档上的其他任何位置时隐藏下拉菜单。任何人都可以评论这条线 if($(e.target).parent("a.signin").length==0) {,因为我不完全理解我们在这里做什么。原文在这里:http ://aext.net/2009/08/perfect-sign-in-dropdown-box-likes-twitter-with-jquery/

  4. 我应该注意的默认方法调用?

在其中一个教程中,我发现了这样的评论:

“最后,如果我们在 CSS 中不包含边距,则 CSS 方法调用的结果是 auto,无法正确解析,因此我们需要将文本“auto”替换为数字 0”

var top = $('#comment').offset().top - parseFloat($('#comment').css('marginTop').replace(/auto/,0));

任何人都可以对此发表评论,因为我不完全理解他在这里做什么。

原文在这里:http: //jqueryfordesigners.com/fixed-floating-elements/

4

2 回答 2

1

1)它是迭代元素 - 当前正在处理的元素each。它会自动转发给回调。(我不喜欢这个模型;我个人更喜欢使用$(this)内部each回调)。

2) 第一个找到name属性正好是的元素newsletter,而后者找到一个name属性以 结尾 newsletter的元素。的使用$是从正则表达式语法中借用的。(正则表达式是一个完全独立的主题)。

3) 这是一个事件委托的例子(虽然不是一个很好的例子——jQuery 可以比这个例子更有效地处理这个)。事件委托绝对值得研究。

您提到的行询问事件的触发元素 - 触发事件的元素 - 并根据条件检查其父级。

4)我什至不会在这一点上花费任何精力 - 它非常不标准并且针对特定用例进行了本地化。

于 2012-07-30T14:44:01.133 回答
0

1.) $("div") 将选择页面上的每个 div。每个都将遍历所有这些 div。对于每次迭代,domEle 将是循环当前正在迭代的 div 的引用。

2.) ^= 是您要查找的内容, ^= 搜索以给定字符串开头的所有内容。$= 搜索所有以给定字符串结尾的字符串: http: //api.jquery.com/category/selectors/

3.) e.target 是用户点击的地方。.parent("a.signin").length==0 如果父级是 .signin 类的锚,则选择父级。检查长度为零等于询问是否选择了任何内容。所以基本上,如果用户没有在类登录的锚点内点击,那么就做点什么。

4.) $('#comment').offset().top 从#comment 元素的顶部获取偏移量。parseFloat($('#comment').css('marginTop').replace(/auto/,0)) 从元素顶部获取边距。如果边距设置为“自动”,则认为边距为 0。 Parsefloat 确保将其作为数字处理,然后从顶部偏移量中减去。这是自定义代码,不是您经常使用/需要的东西。

于 2012-07-30T14:48:32.617 回答