我的代码有什么问题? (jQuery + HTML)

时间:2012-10-18 16:47:42

标签: jquery html href

我在尝试使用jQuery打开页面时(通过强制点击)尝试打开链接,但它无法正常工作。

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
    $('a.bla').click(function(){
    window.open(this.href);
    return false;
    });
});
</script>   
</head>
<body>
<a href="url-to-open.php" target="_blank" class='bla'><img src="pic.png" alt="" style="border:none;" /></a>
</body>
</html>

我不知道出了什么问题。我希望你们中的某个人知道如何解决这个问题。

5 个答案:

答案 0 :(得分:2)

加载页面后,您的代码不会立即打开链接;它会创建一个事件处理程序,只要您加载页面就会触发一个函数。只有在您点击链接时才会触发该事件处理程序。

现在,您通常会做的是:

$(document).ready(function(){
    $('a.bla').trigger('click');
});

除非无法打开链接,因为出于安全原因,您无法以编程方式触发鼠标单击 - 您只能以编程方式触发分配给该鼠标单击的事件处理程序。 / p>

试试这个:

$(document).ready(function(){
    window.open($('a.bla').attr('href'),'name-of-new-window');
});

哪个会起作用,除非用户有一个弹出窗口拦截器阻止它。

答案 1 :(得分:1)

$('a.bla').click(function(){


should be 

    <script>
$(document).ready(function(){
    $('a.bla').click(function(){
    window.open($(this).attr("href"));
    return false;
    });
});

答案 2 :(得分:1)

对于不是.

的课程,请使用#
$(document).ready(function(){
    $('a.bla').click(function(){
    window.open(this.href);
    return false;
    });
});

如上所述,错误地使用#

$(document).ready(function(){

    window.open($('a .bla').href);
    return false;

});

答案 3 :(得分:1)

尝试

window.open($(this).attr('href'));

而不是

window.open(this.href);

如果你想在页面加载时打开..只需将此行移动到click事件之外,它应该没问题。

答案 4 :(得分:0)

此示例应使新窗口通过链接点击事件自动打开。 (尚未对此进行测试,可能需要将href值作为data参数传递给处理程序。

$(document).ready( function() {

    var $link = $( 'a.bla' ),
        href= $link.attr( 'href' );

    $link.unbind( 'click' ).bind( 'click', function ( e ) {
        window.open( href );
        e.preventDefault();
        e.stopPropagation();
    } );

    $link.click();
});