0

我正在使用下面的jquery來控制在AjaxControlToolkit tabcontainer中單擊某個選項卡時發生的情況。使用引導模式與Tabpanel設置活動選項卡

如果隱藏文本輸入(hdnFormSaved)的值爲「True」,則點擊的選項卡被設置爲活動(this.get_owner().set_activeTab(this)),否則創建確認對話框。被點擊的標籤只有在通過對話框確認後才被設置爲有效。

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        if (confirm('Do you want to change tab?')) 
         this.get_owner().set_activeTab(this); 
        else 
         return false; 
       } 
     }; 
}); 

此解決方案完美地工作。但是,我想用引導模式替換確認對話框。

<div class="modal" id="myModal" tabindex="-1" role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title">Warning</h4> 
      </div> 
      <div class="modal-body"> 
       <p>Do you want to change tab?</p> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button type="button" class="btn btn-primary">OK</button> 
      </div> 
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

我已經儘可能在else塊中初始化模態而不是確認對話框。從這裏,我不知道如果點擊模式的OK按鈕,如何繼續將點擊標籤設置爲活動狀態。我可以/應該在同一個區塊內聽該事件嗎?

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        $('#myModal').modal(); 
       } 
     }; 
}); 

歡迎任何建議。謝謝。

回答

0

解決如下:

$(function() { 
    Sys.Extended.UI.TabPanel.prototype._header_onclick = 
     function (e) { 
      this.raiseClick(); 
       if ($("[id$=hdnFormSaved]").val() == "True") { 
        this.get_owner().set_activeTab(this); 
       } else { 
        obj = this; 
        $('#myModal').modal(); 
         $("#btn_okay").on("click", $.proxy(function() { 
          this.get_owner().set_activeTab(this); 
         }, this)); 
     } 
    }; 
}); 

我給模態OK按鈕#btn_okay ID和使用jQuery的proxy通過上下文的on匿名函數。

相關問題