2012-04-12 52 views
2

我想調用一個超鏈接的jquery onclick。但是現在對話每次都會出現頁面加載。我使用這個example的jQuery示例。頁面加載時調用jquery

$(function() { 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      width:500, 
      height:140, 
      modal: true, 
      buttons: { 
       "Confirm": function() { 
        $(this).dialog("close"); 
        autoGeneration(); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 

和HTML:

<div id="dialog-confirm" title="Overwrite?"> <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Will be overwrite. continue?</p> </div> 

<a href="#" id="dialog-confirm" class="bigButton">AUTO GENERATION</a> 

我想從上的點擊以下鏈接調用,避免調用頁面的對話框每次onload事件。

感謝大家的回答。

回答

1

對話框的autoOpten選項設置爲false:

$(function() { 
    $("#dialog-confirm").dialog({ 
     autoOpen: false 
     //other options 
    }); 
}); 

更改鏈接的ID,因此,它比對話框DIV的不同:

<a href="#" id="openDialog" class="bigButton">AUTO GENERATION</a> 

然後只需撥打open對話:

$("#openDialog").click(function(e){ 
    e.preventDefault(); 
    $("#dialog-confirm").dialog("open"); 
}); 
+0

我試圖像我們的代碼。但是當我點擊鏈接時,對話框不會出現。 – kitokid 2012-04-12 09:14:34

+0

@PTY,你是從字面上複製/粘貼我的代碼嗎?如果是這樣,我有一個錯字:我有一個額外的逗號:'autoOpen:false,'。如果您沒有將其他選項傳遞給對話框,請在'false'後刪除逗號並且它應該可以工作。 – 2012-04-12 09:28:21

+0

嗯..我忘了包括 。謝謝。 – kitokid 2012-04-13 03:20:44

1
$(function() { 
     $("#dialog-box").dialog({ 
      autoOpen: false, 
      resizable: false, 
      width:500, 
      height:140, 
      modal: true, 
      buttons: { 
       "Confirm": function() { 
        $(this).dialog("close"); 
        autoGeneration(); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

    $("#dialog-confirm").click(function() { 
     $("#dialog-box").dialog("open"); 
     return false; 
    }); 

    }); 

你需要不同的ID爲「鏈接」和「對話」,以便改變對話框,確認以對話盒

<div id="dialog-box" title="Overwrite?"> <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Will be overwrite. continue?</p> </div> 

<a href="#" id="dialog-confirm" class="bigButton">AUTO GENERATION</a> 
+0

加一。感謝您的詳細解釋。 – kitokid 2012-04-13 03:22:33

0

首先設置對話框autoOpen屬性false阻止它在頁面加載開幕。

$(function() { 
    $("#dialog-confirm").dialog({ 
     autoOpen: false, 
     resizable: false, 
     width:500, 
     height:140, 
     modal: true, 
     buttons: { 
      "Confirm": function() { 
       $(this).dialog("close"); 
       autoGeneration(); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 

然後在鏈接的點擊處理程序打開它:

$("#dialog-confirm").click(function(e) { 
    e.preventDefault; 
    $("#dialog-confirm").dialog('open'); 
}); 
0

你應該做的

var dialog = $("#dialog-confirm").dialog({ 
     autoOpen: false, 
     resizable: false, 
     width:500, 
     height:140, 
     modal: true, 
     buttons: { 
      "Confirm": function() { 
       $(this).dialog("close"); 
       autoGeneration(); 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    }); 

$('a.bigButton').click(function(e){ 
    e.preventDefault(); 
    dialog.dialog("open"); 
}); 
+0

當我像上面那樣嘗試時,好像div標籤中的文字出現在頁面上。 – kitokid 2012-04-12 09:27:30

+0

@PTY當然,div必須隱藏,只需在其上設置style =「display:none」即可 – 2012-04-12 09:32:12