Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 jquery中创建的url重定向到并打开一个新选项卡_Javascript_Jquery - Fatal编程技术网

Javascript jquery中创建的url重定向到并打开一个新选项卡

Javascript jquery中创建的url重定向到并打开一个新选项卡,javascript,jquery,Javascript,Jquery,这段代码运行得很好,但它有一个让我吃惊的副作用:当我点击链接时,一个新的标签页打开了一个好的链接。但是主窗口也会加载好的url。为什么它会打开一扇新的窗户 编辑 根据要求的新代码: $('#resultsDiv').on('click', '#seeTemplates', function () { var ebayTemplate = $('#templates').val(); var url = '@Url.Action("SeeTemplateDetailsByName

这段代码运行得很好,但它有一个让我吃惊的副作用:当我点击链接时,一个新的标签页打开了一个好的链接。但是主窗口也会加载好的url。为什么它会打开一扇新的窗户

编辑

根据要求的新代码:

$('#resultsDiv').on('click', '#seeTemplates', function () {
    var ebayTemplate = $('#templates').val();

    var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';

    window.location.href = url + "?templateName=" + ebayTemplate;
});
我现在正在调查两种可能性:

  • 一个代表会有这样的结果吗
  • 这是
    windows.location.href
    jquery调用的正常行为吗

  • 尝试此操作,添加函数(e)和e.preventDefault()将停止浏览器的默认操作:

        $('#resultsDiv').on('click', '#seeTemplates', function (e) {
            e.preventDefault();
    
            alert("Clicked");
    
            var ebayTemplate = $('#templates').val();
    
            var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
    
            window.location.href = url + "?templateName=" + ebayTemplate;
        });
    

    尝试此操作,添加函数(e)和e.preventDefault()将停止浏览器的默认操作:

        $('#resultsDiv').on('click', '#seeTemplates', function (e) {
            e.preventDefault();
    
            alert("Clicked");
    
            var ebayTemplate = $('#templates').val();
    
            var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
    
            window.location.href = url + "?templateName=" + ebayTemplate;
        });
    
    因为
    #seemplates
    是一个链接(每个操作注释),所以默认链接操作和自定义事件处理程序都在运行。要避免这种情况,您需要防止链接的默认行为:

    $('#resultsDiv').on('click', '#seeTemplates', function (e) {
        var ebayTemplate = $('#templates').val();
        var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
        window.location.href = url + "?templateName=" + ebayTemplate;
        e.preventDefault();
    });
    
    您还可以将元素更改为其他类型(可能是
    ),并完全避免问题。

    因为
    #seemplates
    是链接(根据操作注释),默认链接操作和自定义事件处理程序都在运行。要避免这种情况,您需要防止链接的默认行为:

    $('#resultsDiv').on('click', '#seeTemplates', function (e) {
        var ebayTemplate = $('#templates').val();
        var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
        window.location.href = url + "?templateName=" + ebayTemplate;
        e.preventDefault();
    });
    
    您也可以将元素更改为其他类型(可能是
    ),并完全避免问题。

    我无法评论(因为这里是新的),因此您可能希望尝试在那里添加
    e.preventDefault()
    以防止/阻止默认操作(还有其他方法)

    如果你想用JavaScript打开一个新标签,试试这个

    $('#resultsDiv').on('click', '#seeTemplates', function (e) {
        e.preventDefault();
        var ebayTemplate = $('#templates').val();
    
        var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
    
        window.location.href = url + "?templateName=" + ebayTemplate;
    });
    
    我希望这会有所帮助。

    我无法评论(因为这里是新的),因此您可能希望尝试在那里添加
    e.preventDefault()
    以防止/阻止默认操作(还有其他方法)

    如果你想用JavaScript打开一个新标签,试试这个

    $('#resultsDiv').on('click', '#seeTemplates', function (e) {
        e.preventDefault();
        var ebayTemplate = $('#templates').val();
    
        var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
    
        window.location.href = url + "?templateName=" + ebayTemplate;
    });
    

    我希望这有帮助。

    #seemplates
    元素吗?是的!锚点是否有这种行为?可能您的锚点上有target=“\u blank”。这将导致它在一个新窗口中打开。不,我已经在case中检查了这个问题,锚点是这样的:
    如果删除所有附加代码并将e.preventDefault()留在那里会发生什么。它是否仍在新窗口中打开?
    #请参阅Templates
    是否为
    元素?是的!锚点是否有这种行为?可能您的锚点上有target=“\u blank”。这将导致它在一个新窗口中打开。不,我已经在case中检查了这个问题,锚点是这样的:
    如果删除所有附加代码并将e.preventDefault()留在那里会发生什么。它是否仍在新窗口中打开?奇怪的是,这并没有停止该行为,尽管我知道您的代码确实应该停止它|和你的一模一样。不管怎样,请发帖,只是为了确保。我真傻!有另一段代码以同样的方式交互。去掉另一块,留下你的,一切都很好。谢谢奇怪的是,这并没有停止该行为,尽管我知道您的代码确实应该停止它|和你的一模一样。不管怎样,请发帖,只是为了确保。我真傻!有另一段代码以同样的方式交互。去掉另一块,留下你的,一切都很好。谢谢