2011-11-23 63 views
1

我有這個網站:http://www.problemio.com,如果你去那裏,點擊任何說「重要」的鏈接,它會給你一個登錄彈出窗口。該彈出窗口工作正常。在彈出的對話框中出現問題時,按「create_profile」鏈接。jQuery點擊沒有反應,以防止默認行爲

不顯示創建配置文件彈出窗口,而是顯示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();在那裏但並不完全確定它應該如何工作。任何建議或想法,爲什麼它不像我預期的那樣工作?

謝謝!

回答

5

變化:

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

到:

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

因爲你需要的event說法,否則你在呼喚到不存在的對象的功能。

+0

是的,這完全工作!!!! :) – GeekedOut

2

你錯過了函數簽名中的事件參數試試這個。

$('#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; 
    }); 
1

您需要將事件傳遞到點擊功能

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