使用If语句附加了一个eventhandler

时间:2014-05-12 04:45:31

标签: php jquery logic

我正在将文件加载到div中,然后尝试强制该文件中的所有链接加载到div中,否则它们会将浏览器带到新页面。

我无法理解为什么会这样(用户只能在#login div中浏览网页):

$(document).ready(function() {
                $('#login').load("indexLogin.php",function(){

                    $('#login').on("click", 'a', function(event){
                        var url = $(this).attr('href');
                            event.preventDefault();
                            $('#login').load(url);
                    });
                });
            });

但这不是(每个链接都被视为下拉列表);

$(document).ready(function() {
                $('#login').load("indexLogin.php",function(){

                    $('#login').on("click", 'a', function(event){
                        var url = $(this).attr('href');
                        if (url == "#" || " "){
                            console.log("dropdown");
                            return;     
                        }else{
                            event.preventDefault();
                            $('#login').load(url);
                        }
                    });
                });
            });

我认为逻辑是: 1.通过回调将处理程序单击附加到所有'a' 2.回调运行,设置var,检查var,并执行结果

相反,它似乎在说:如果任何'a'是“#”或“”然后返回。为什么呢?

1 个答案:

答案 0 :(得分:2)

这是因为您的if声明的签名有误,url == "#" || " "这将始终评估为true

尝试,

if (url == "#" || url == " "){