打开<a> link in JQuery colorbox when it is clicked</a>的网址

时间:2012-11-15 14:39:10

标签: javascript jquery

我需要帮助这个JQuery代码我有...我还是一个新手,当谈到JQuery但我有很多代码在这里测试...你知道只是因为你需要一个所以这里的代码..

<script type="text/javascript">
//onload popup
$(function()
{
    $(window).bind('load', 
        function(e) 
        {
            $.colorbox({opacity:0.3, href:"ext/popup.php"}); 
        });
});

</script>

现在这次我不想加载页面然后让表单弹出...我想点击链接的东西..有什么建议吗?

3 个答案:

答案 0 :(得分:3)

$(function()
{
    $('#linkid').click(function(e) 
        {
            e.preventDefault();
            $.colorbox({opacity:0.3, href: this.href}); 
        });
});

并创建一个像这样的链接

<a href="ext/popup.php" id="linkid">click me</a>

<强>更新

如果要将此逻辑应用于多个链接,则应使用类而不是id

<a href="ext/popup.php" class="colorbox">click me</a>

并且jquery使用

定位它们
$('.colorbox').click(...)

<强>注释

对您的代码进行通用评论,您无需使用$(function(){..})$(window).bind('load' 第一部分绑定DOM准备好的事件。第二个关于DOM负载 由于load将始终 后发生ready事件,您可以直接执行

$(window).load(function(){...});

但是只有在运行代码之前需要完全加载子元素时才能使用加载(通常是图像)。 阅读:http://api.jquery.com/load-event/

答案 1 :(得分:1)

$('a#yourLinkId').click(function(e){
  // prevents default behaviour
  e.preventDefault();

  // your stuff
  $.colorbox({opacity:0.3, href:"ext/popup.php"}); 

});

答案 2 :(得分:1)

没问题。您可以在Stackoverflow中询问有关JQuery的任何问题,我们会尽力提供帮助。

关于你的问题。我想你想使用JQuery加载ColorBox内的页面,而不是在主窗口中加载URL的默认操作。

你需要做两件事:

  1. 将事件处理程序绑定到所有锚标记(<a>),以便在单击它们时运行您的事件。
  2. 阻止默认事件处理程序打开URL(preventDefault)
  3. 您可以将事件绑定到所有锚标记,如下所示:

    //for all links that exist on this page up to when this line is executed
    $("a").click(function(){...});
    

    但我建议使用on()按钮绑定您的活动。这样,所有<a>标记都将运行此事件处理程序,即使它们是在>运行事件绑定代码之后创建的。

    //for all links that are created on this page even after this lines of code is executed
    $("a").on( "click", function(){...});
    

    要阻止默认操作(浏览页面),只需使用preventDefault()方法:

    //assuming event argument is called e
    e.preventDefault();
    

    话虽如此,您的代码将如下所示:

    <script type="text/javascript">
    //this will run when the current document is loaded
    $(document).ready(function(){
        $("a").on("click",function(e){
            e.preventDefault();
            //$(this).attr("href") contains the href attribute of the <a> tag
            $.colorbox({opacity:0.3, href:$(this).attr("href")});
        });
    });
    </script>