Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
.one()不';不要像jquery.com建议的那样首次使用_Jquery_Status Bydesign - Fatal编程技术网

.one()不';不要像jquery.com建议的那样首次使用

.one()不';不要像jquery.com建议的那样首次使用,jquery,status-bydesign,Jquery,Status Bydesign,我已经研究了如何根据自己的需要使用.one(),并让它在每个类选择器实例中正常工作,其中只显示一次。但是在jQuery.com上,它声明了以下内容将起作用,如果单击一次,那么如果使用相同的类选择器单击另一个元素,它将不会再次运行。然而,这对我不起作用。我在一个页面上有并且需要相同的特定类选择器 以下是jQuery.com给出的代码作为示例: $("#foo").one("click", function() { alert("This will be displayed only once.")

我已经研究了如何根据自己的需要使用.one(),并让它在每个类选择器实例中正常工作,其中只显示一次。但是在jQuery.com上,它声明了以下内容将起作用,如果单击一次,那么如果使用相同的类选择器单击另一个元素,它将不会再次运行。然而,这对我不起作用。我在一个页面上有并且需要相同的特定类选择器

以下是jQuery.com给出的代码作为示例:

$("#foo").one("click", function() {
alert("This will be displayed only once.");
});
$("body").one("click", ".foo", function() {
alert("This displays once for the first .foo clicked in the body.");
});

上面的第二个似乎不像上面说的那样有效。有人知道如何让它真正发挥作用吗。我可以在多个地方使用.foo,但该函数仅在单击其中一个.foo后显示一次。当单击另一个.foo时,它将不再运行该函数?非常感谢您提供的任何帮助/建议。

如本评论中所述,这是。当读取正确时(例如,它不是写得很好),处理程序将只为匹配选择器的第一个元素触发一次

要使每个
.foo
元素不超过一次,您必须自己执行此操作(注意,我们已从使用
one()
切换到
on()
,并自行处理速率限制

$("body").on("click", ".foo", function() {
    var self = $(this);

    if (!self.data('fired')) {
        self.data('fired', true);

        alert("This displays once for each .foo clicked in the body.");
    }
});

您可以试试这个:

$(function(){
   $(".foo").one("click",function(event) {
      alert("This displays once for the first .foo clicked in the body.");
   });
});
这将只点击
.foo
警报一次
。如果不重新加载而再次点击,警报将不会显示


fiddle:

它按预期工作。文档在这里写得非常糟糕,令人困惑,但它做到了alert中所说的:
alert(“第一次显示一次。foo在正文中单击”);