jQuery单击不对防止默认行为做出反应

时间:2011-11-23 17:54:26

标签: jquery

我有这个网站:http://www.problemio.com如果你去那里点击任何说“重要”的链接,它会给你一个登录弹出窗口。弹出窗口工作正常。弹出该对话框时出现问题,按“create_profile”链接。

不是显示创建配置文件弹出窗口,而是转到create_profile页面。

以下是我的点击处理程序:

$('#login').live('click' , function() 
    {
        event.preventDefault();
         // Make the existing suggestions visible
         $("#loginpopup").dialog();
         $("#createprofilepopup").dialog( 'close' );

         return false;
    }); 

    $('#signup').live('click' , function() 
    {
        event.preventDefault();
        $("#loginpopup").dialog( 'close' );
        $("#createprofilepopup").dialog( { height: 800, width: 600 } );

        return false;
    });  

我只是把event.preventDefault();在那里,但不完全确定它应该如何工作。任何建议或想法,为什么它没有像我预期的那样工作?

谢谢!

3 个答案:

答案 0 :(得分:5)

变化:

$('#login').live('click' , function() 
$('#signup').live('click' , function() 

为:

$('#login').live('click' , function(event) 
$('#signup').live('click' , function(event) 

因为你需要event参数,否则你正在调用一个不存在的对象的函数。

答案 1 :(得分:2)

你错过了函数签名中的event参数。试试这个。

$('#login').live('click' , function(event) 
    {
        event.preventDefault();
         // Make the existing suggestions visible
         $("#loginpopup").dialog();
         $("#createprofilepopup").dialog( 'close' );

         return false;
    }); 

    $('#signup').live('click' , function(event) 
    {
        event.preventDefault();
        $("#loginpopup").dialog( 'close' );
        $("#createprofilepopup").dialog( { height: 800, width: 600 } );

        return false;
    });

答案 2 :(得分:1)

您需要将事件传递给点击功能

 $('#login').live('click' , function(event){
       event.preventDefault();