【问题标题】:On changing href value to popupid not working将 href 值更改为 popupid 不起作用
【发布时间】:2019-08-08 17:40:20
【问题描述】:

我创建了一些应该打印的具有不同描述的块,因此我分别创建了所有弹出详细信息,并在加载时使用“#”制作了打印按钮,并在单击块时我试图更改 href 值到相应的popupid。单击​​打印弹出窗口时href值的此更改未显示。按照我使用的代码:

<div id ="9print">
<a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-square vc_btn3-style-classic vc_btn3-color-grey" href="#" title="">PRINT</a>
</div>

点击按钮 9

$("#9print a").prop("href", "#sg-popup-id-429");

href 值正在更改为“#sg-popup-id-429”,但之后当我单击“PRINT”时弹出窗口没有显示,如果我们直接将 href 值设置为“#sg-popup-id” -429" 它工作正常

谁能帮我解决这个问题?

【问题讨论】:

  • 如何打开弹出窗口?这是添加到锚标记的另一个事件吗?你能添加这段代码吗?
  • 如果我点击一个按钮及其 href="#sg-popup-id-429" 以这种方式我可以打开弹出窗口
  • 请分享你的javascript你的onchange()fn在哪里
  • 但是你能把打开弹出窗口的代码也显示一下吗?
  • 为什么不只显示弹出事件代码?我认为这与创建事件的时间有关。

标签: javascript jquery html


【解决方案1】:

这是因为 href 属性包含的不仅仅是“#”。它包含完整的网址。您可以通过替换 url 的最后一部分来使其工作。

正则表达式/#.*/ 的工作原理如下。

  • # 匹配 # 字符
  • .* 匹配(几乎)任何字符 0-无限次

var currHref = $("#9print a").prop("href");
$("#9print a").prop("href", currHref.replace(/#.*/, "#sg-popup-id-429"));

//code for showing initial and new href values.
var newHref = $("#9print a").prop("href");
console.log("initial href: " + currHref);
console.log("new href: " + newHref);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id ="9print">
<a class="vc_general vc_btn3 vc_btn3-size-md vc_btn3-shape-square vc_btn3-style-classic vc_btn3-color-grey" href="#" title="">PRINT</a>
</div>

<div style="height: 2000px;"></div>

<div id="sg-popup-id-429" style="height: 100px; background-color: red">test<div>

【讨论】:

    【解决方案2】:

    首先,我会将它放在 jquery 中的 document ready function 中,这样您就不会在页面上未加载的元素上运行您尝试调用的 jQuery 函数。

    $(document).ready(function(){
        $("#9print a").click(function() {
            $("#9print a").attr("href", "#sg-popup-id-429");
        });
    });
    

    这只是假设,这是您的问题 :) 如果这根本没有帮助,请显示更多代码 :)

    【讨论】:

    • 这个现成的功能已经有了我只是放了点击功能代码
    • 你不应该使用click()on() 是这些天要走的路。除此之外,您不需要单击事件处理程序。
    • @user11196214 - 很公平。但是我无法从您的示例中读取到这一点:) 如果该功能有效,您仍然没有回答。
    • @MarkBaijens - 好的,但是使用 jQuery 中未弃用的函数真的值得反对吗?为什么不需要一个点击事件处理程序?据我所知,他想在单击链接时更改 href 属性?我在这里遗漏了一些非常明显的东西吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    相关资源
    最近更新 更多