Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
jQuery非选择器导致无限循环_Jquery_Selector - Fatal编程技术网

jQuery非选择器导致无限循环

jQuery非选择器导致无限循环,jquery,selector,Jquery,Selector,以下代码导致我的浏览器崩溃。对于Firefox,我可以选择是否停止jQuery,因为它的运行时间比应该的长 div id="divLeaving"> You are about to leave to: <span id="spanLeavingURL"></span> <a id="divLeavingYes" href="#">Yes</a><a id="divLeavingNo" href="#">No<

以下代码导致我的浏览器崩溃。对于Firefox,我可以选择是否停止jQuery,因为它的运行时间比应该的长

div id="divLeaving">
    You are about to leave to: <span id="spanLeavingURL"></span>
    <a id="divLeavingYes" href="#">Yes</a><a id="divLeavingNo" href="#">No</a>
</div>
<a href="http://www.google.com">google</a>

<script type="text/javascript" language="javascript">

    $(document).ready(function() {
        $("a:not(#divLeavingYes, #divLeavingNo)").click(function() {
            var url = $(this).attr("href");
            var test_if_local = url.indexOf("mycompany.com");
            if (test_if_local == -1) {
                $("#spanLeavingURL").text(url);
                $("#divLeavingYes").attr("href", url);
                $("#divLeavingNo").click(function() { $(this).dialog('destroy'); });
                $("#divLeaving").dialog({ modal: true });
                return false;
            }
        });
    });
</script>
div id=“div离开”>
您将要前往:
$(文档).ready(函数(){
$(“a:not(#divLeavingYes,#divLeavingNo)”。单击(函数(){
var url=$(this.attr(“href”);
var测试如果本地=url.indexOf(“mycompany.com”);
如果(测试如果本地==-1){
$(“#spanLeavingURL”).text(url);
$(“#divLeavingYes”).attr(“href”,url);
$(“#divLeavingNo”)。单击(function(){$(this.dialog('destroy');});
$(“#div”).dialog({modal:true});
返回false;
}
});
});
但是,如果我删除not选择器,它不会使我的浏览器崩溃

<div id="divLeaving">
    You are about to leave to: <span id="spanLeavingURL"></span>
    <a id="divLeavingYes" href="#">Yes</a><a id="divLeavingNo" href="#">No</a>
</div>
<a href="http://www.google.com">google</a>

<script type="text/javascript" language="javascript">

    $(document).ready(function() {
        $("a").click(function() {
            var url = $(this).attr("href");
            var test_if_local = url.indexOf("mycompany.com");
            if (test_if_local == -1) {
                $("#spanLeavingURL").text(url);
                $("#divLeavingYes").attr("href", url);
                $("#divLeavingNo").click(function() { $(this).dialog('destroy'); });
                $("#divLeaving").dialog({ modal: true });
                return false;
            }
        });
    });
</script>

您将要前往:
$(文档).ready(函数(){
$(“a”)。单击(函数(){
var url=$(this.attr(“href”);
var测试如果本地=url.indexOf(“mycompany.com”);
如果(测试如果本地==-1){
$(“#spanLeavingURL”).text(url);
$(“#divLeavingYes”).attr(“href”,url);
$(“#divLeavingNo”)。单击(function(){$(this.dialog('destroy');});
$(“#div”).dialog({modal:true});
返回false;
}
});
});
如何更改此查询,使其选择除#divLeavingYes和#divLeavingNo之外的所有查询?

尝试此操作,我包括“event.stopPropagation()”:


我不确定您的HTML是如何构造的,但也许您可以使用jQuery的slice()过滤器来完成这项工作


我不知道jQuery的实现,但是:

a:not(#divLeavingYes, #divLeavingNo)
不是有效的CSS3选择器。:not选择器只能取一个值。尝试:


我不知道你的浏览器是什么,这个例子我在IE、Firefox、Chrome和Safary中都做得很好。在关闭之前,您可以更具体地说明哪个浏览器是您的浏览器,或者询问哪些浏览器尝试此示例。你必须记住,这些脚本并不完美,我有完整的HTML来查看错误是否存在于代码的其他部分。上面的代码不会让我崩溃Firefox。您还可以包含其他代码吗?
a:not(#divLeavingYes, #divLeavingNo)
a:not(#divLeavingYes):not(#divLeavingNo)