2012-02-12 216 views
2

该函数可以工作,但弹出窗口只有在点击两次按钮后才会打开(然后,随后的点击会在第一次点击时获得操作)。jquery点击href链接 - 必须点击两次

$(document).ready(function(){ 
    $('a#printPosBtn').on('click', function(e) { 
     e.preventDefault(); 
     $('.printPopup').popupWindow({ 
      centerBrowser:1, 
      height:500, 
      width:720, 
      scrollbars: 1, 
      resizable: 1 
     }); 
     return false; 
    }); 
}); 

怎么了?

+0

'e.preventDefault();'在代码中执行与'return false;'相同的操作。 – elclanrs 2012-02-12 19:31:46

+0

代码没有明显的错误。我们可能必须查看实际页面才能调试发生的原因。 – jfriend00 2012-02-12 19:33:28

+0

是的,你真的用这样的双重取消来击败你自己的原因。另外,你在jquery上使用了一些非常古老的工作,你知道你可以轻松地重写那些更简单的'$(function(){$(“#printPosBtn”)。click(function(event){e.preventDefault();/*完成工作* /});});' – SpYk3HH 2012-02-12 19:36:07

回答

2

我认为这是因为你实际上正在初始化click处理程序中的插件。通过快速浏览popupWindow文档,看起来该插件负责为您绑定一个click处理程序,这意味着您的第一次点击绑定了弹出功能(包括onclick处理程序),因此只有在第二次点击时才会起作用。我会尝试:

$(document).ready(function() { 

    $(".printPopup").popupWindow({ 
     centerBrowser: 1, 
     height: 500, 
     width: 720, 
     scrollbars: 1, 
     resizable: 1 
    }); 

    // open popup by clicking on some other element 
    $('#printPosBtn').on('click', function(e) { 
     e.preventDefault(); 
     $(".printPopup").click();   
    }); 

});​ 
+1

Yeap,这个工程。你所说的一切都是正确的。谢谢。 – 2012-02-12 20:32:10