2012-10-29 184 views
0

我有一個對話框與一個複選框裏面的一個jsp頁面。當單擊超鏈接時,該對話框打開。jquery對話框關閉與複選框

,我想實現的是由以下規則控制的功能:

  1. 對話框應該只在接近內部的複選框被選中。
  2. 如果重新打開對話框並且複選框已被選中,用戶可以單擊頁面上的任意位置將其關閉。
  3. 如果重新打開對話框並且未選中或取消選中該複選框,則用戶只能通過選中該複選框來關閉對話框。

    function closeDialog() { 
        var checked = $('.checkboxClass').attr('checked'); 
    
        $('.ui-widget-overlay').live('click', function() { 
    
        if(checked){ 
        $('#'+divId).dialog('close'); 
        }else{ 
        <!-- since unchecked, dialog should not be closed--> 
         //$(document).unbind('click'); 
        //$('.ui-widget-overlay').unbind('click'); 
         $('.ui-widget-overlay').die('click'); 
        } 
        }); 
    } 
    
    <!-- This detects if checkbox is clicked--> 
    $('.checkboxClass').live('click', function() { 
        var checked = $('.checkboxClass').attr('checked'); 
        if(checked){ 
         $('#'+divId).dialog('close'); 
        } 
    }); 
    

我已經嘗試了所有的東西進行第3步,即防止對話框被關閉,如果用戶點擊對話框以外的任何地方,但它被關閉。有任何想法嗎? 我使用jQuery 1.4,因此寧願保留我知道已棄用的.live()

回答

1

試着改變你的.ui小部件疊加事件綁定到

$('.ui-widget-overlay').live('click', function(e) { 
... 

然後做在別的一個e.stopPropagation()