Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不确定此Javascript代码的功能_Javascript_Jquery_Html_Css - Fatal编程技术网

不确定此Javascript代码的功能

不确定此Javascript代码的功能,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我正在阅读一个JS文件,其中包含以下代码: $('a[href]:not(.no-ajaxy):not([target="_blank"]):not([href^="#"]):not([href^="mailto:"]):not(.comment-edit-link):not(.comments-link):not(#cancel-comment-reply-link):not(.comment-reply-link):not(#toggle-nav):not(.logged-in-as

因此,我正在阅读一个JS文件,其中包含以下代码:

$('a[href]:not(.no-ajaxy):not([target="_blank"]):not([href^="#"]):not([href^="mailto:"]):not(.comment-edit-link):not(.comments-link):not(#cancel-comment-reply-link):not(.comment-reply-link):not(#toggle-nav):not(.logged-in-as a):not(.add_to_cart_button):not(.section-down-arrow):not([data-filter]):not(.pp):not([rel^="prettyPhoto"]):not(.pretty_photo)').click(function(e){
提高可读性

$('a[href]:not(.no-ajaxy)
:not([target="_blank"])
:not([href^="#"])
:not([href^="mailto:"])
:not(.comment-edit-link)
:not(.comments-link)
:not(#cancel-comment-reply-link)
:not(.comment-reply-link)
:not(#toggle-nav)
:not(.logged-in-as a)
:not(.add_to_cart_button)
:not(.section-down-arrow)
:not([data-filter])
:not(.pp)
:not([rel^="prettyPhoto"])
:not(.pretty_photo)')
.click(function(e){
所以,我假设它是一个钩子,连接到所有点击时触发的
链接,但在某些情况下它被排除在外。然而,我似乎无法理解以下情况:

  • .no ajaxy
    是将get应用于
    的类,还是可以应用于父元素?以
    开头的所有其他非筛选器也是如此

  • rel^=“prettypto”
    我假设这意味着,如果链接如下所示,它将与此不匹配,因为它不是这样说的,对吗


我也尝试过一些案例来匹配这些排除,但似乎有什么东西让它忽略了这些条件。

首先,这是关于

该代码由选择器逐一解释:

  • a[href]
    具有
    href
    属性的所有
    元素,以及:
  • :not(.no ajaxy)
    没有CSS类
    no ajaxy
  • :not([target=“\u blank”])
    没有
    target
    属性值
    \u blank
  • :not([href^=“#”])
    没有以
    开头的
    href
    属性。
  • :not([href^=“mailto:”)
    没有以
    'mailto:'开头的
    href
    属性。
  • :没有(.comment edit link)
    没有CSS类
    comment edit link
  • :没有(.comments link)
    没有CSS类
    comments link
  • :not(#取消评论回复链接)
    没有ID
    取消评论回复链接
  • :没有(.comment-reply-link)
    没有CSS类
    comment-reply-link
  • :not(#toggle nav)
    没有ID
    toggle nav
  • :not(.logged as a)
    没有CSS类的父节点
    logged as
  • :没有(.add_to_cart_按钮)
    没有CSS类
    add_to_cart_按钮
  • :没有(.section down arrow)
    没有CSS类
    section down arrow
  • :not([data filter])
    没有属性
    数据过滤器
  • :not(.pp)
    没有CSS类
    pp
  • :not([rel^=“prettypto”])
    没有以
    'prettypto'开头的属性
    rel
  • :not(.pretty_photo)
    没有CSS类
    pretty_photo

因此,它将获得具有上述条件的所有锚定标记,并为它们注册
click
事件处理程序。

简短回答:选择一组元素并注册一个click处理程序。这是一个很长的选择器,所以只需从头开始,逐个token.PS处理它。不要假设,而是检查各种选择器上的。
no ajaxy
是一个来自
ajaxify html.js
插件的类。它基本上是说不要在该类的元素上使用ajax。因此,我认为它将钩子应用于所有没有类
标记。没有ajaxy
我真的很欣赏这些链接,尽管我刚开始使用Javascript,不知道它是jQuery选择器。我觉得没必要因为这个问题是个新手就这么讨厌这个问题。好吧,最后用清晰的语言我终于能够理解了。非常感谢您的帮助。现在,CSS类是针对
元素的,忽略父元素或子元素。@SHiRKiT是的,仅针对元素