【问题标题】:Attached an eventhandler with an If statement附加一个带有 If 语句的事件处理程序
【发布时间】:2014-05-12 04:45:30
【问题描述】:

我正在将文件加载到 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”是“#”或“”,则返回。为什么?

【问题讨论】:

  • 这是一个错误,你不能在if语句中这样做,它应该是if (url == "#" || url == " "){

标签: php jquery logic


【解决方案1】:

那是因为你的if 语句的签名是错误的,url == "#" || " " 这将始终评估为true

试试,

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    相关资源
    最近更新 更多