2012-10-19 69 views
0

我想用jquery顯示確認對話框,但沒有反應,當我點擊鏈接這裏是我有的代碼,如果我把警報,我可以看到警報在準備好功能,但不是在點擊:jquery確認對話框無所作爲

$(document).ready(function() { 
    $("#mydialog").dialog({ 
     autoOpen: false, 
     modal: true 
    }); 
}); 
$(".myconfirmLink").click(function(e) { 
    e.preventDefault(); 
    var targetUrl = $(this).attr("href"); 
    $("#mydialog").dialog({ 
     buttons: { 
      "Yes": function() { 
       $(this).dialog("close"), window.location.href = targetUrl; 
      }, 
      "No": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    $("#mydialog").dialog("open"); 
});​ 

和鏈接我打電話它像這樣:

<div class="topToolbar"> 
        <span> <a href="/Logout.aspx" class="myconfirmLink">Log Out</a></span> 
        <div id="mydialog" title="Confirmation Required"> 
       <p> Are you sure you want to request a new pack?</p> 
      </div> 

回答

2

移動你點擊的document.ready函數內部結合

$(document).ready(function() { 
    $("#mydialog").dialog({ 
     autoOpen: false, 
     modal: true 
    }); 
    $(".myconfirmLink").click(function(e) { 
     e.preventDefault(); 
     var targetUrl = $(this).attr("href"); 
     $("#mydialog").dialog({ 
      buttons: { 
       "Yes": function() { 
        $(this).dialog("close"), window.location.href = targetUrl; 
       }, 
       "No": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     $("#mydialog").dialog("open"); 
    }); 
});​ 

很可能它試圖將click事件綁定到元素之前它存在於dom中。它工作正常,在這裏

http://jsfiddle.net/FdBTW/

1

它看起來像你設置ready功能之外單擊處理程序。 $(".myconfirmLink").click(function (e) { ... });代碼正在運行之前 jQuery已經準備好了。

1

他們沒有錯你的代碼。只需將您的確認鏈接點擊處理程序代碼移動到document.ready函數中即可使其工作。