目標是創建一個類似於在stackoverflow上的標誌對話框,顯示點擊位於問題下的'標誌'按鈕,但由於我是網絡開發新手,我不瞭解某些事情。如何在javascript中創建對話框?
這是我有:
這是該按鈕的標記:
<a id="flag-post-2239985" title="flag this post for serious problems">flag</a>
- 我不明白這是如何執行的情況下,通常有一個onclick標籤它如何去腳本?
這是一個包含函數接受的答案,投票和標記帖外部JS:在http://jsbeautifier.org/
http://sstatic.net/so/js/question.js?v=6274
可以unminify它更好的視野所需的功能:
flag: function (F) { var D = F.attr("id").substring("flag-post-".length); var K = "form-flag-" + D; var N = $("#" + D + "-is-owned-by-current-user").length > 0; var L = [ [l.offensive, "Offensive, Abusive, or Hate Speech", !N], [l.spam, "Spam", !N], [l.informModerator, "Requires Moderator attention", true] ]; var I = '<div class="popup flag-menu"><h2>Please flag with care:</h2>'; I += '<div class="flag-reasons"><form id="' + K + '">'; for (var G = 0; G < L.length; G++) { if (L[G][2]) { var M = "flag-radio" + D + "-" + L[G][0]; I += '<input type="radio" id="' + M + '" name="flag-' + D + '" value="' + L[G][0] + '">'; I += '<label for="' + M + '">' + L[G][1] + "</label><br>" } } I += '<div class="flag-comment">Why are you flagging this post?<textarea name="flag-reason" cols="33" rows="4"></textarea>'; I += '<br><span class="text-counter"></span></div>'; I += "</form></div>"; I += '<input type="button" class="flag-cancel" value="Cancel"><input type="button" class="flag-submit" value="Flag Post">'; I += "</div>"; var H = $(I); var E = H.find("#" + K); var J = E.find("textarea"); E.find("input").click(function() { var O = E.find("div.flag-comment"); var P = vote.flagIsInform(E); O.toggle(P); if (P) { J.focus() } vote.flagAllowSubmit(H, J, P) }); J.charCounter({ min: 10, max: 150, setIsValid: function() { vote.flagAllowSubmit(H, J, vote.flagIsInform(E)) } }); H.find(".flag-submit").click(function() { if (vote.flagIsInform(E) && !vote.flagTextValid(J)) { return } vote.flagSubmit(F, D, E, J) }); H.find(".flag-cancel").click(function() { vote.flagClosePopup(F) }); F.parent().append(H); H.fadeIn("fast") }, flagIsInform: function (D) { var E = D.find("input:radio:checked"); if (E.length == 0) { return false } return E.val() == l.informModerator }, flagAllowSubmit: function (E, F, G) { var D = G ? vote.flagTextValid(F) : true; E.find(".flag-submit").toggle(D) }, flagTextValid: function (E) { var D = E.val().length; return (D >= 10 && D <= 150) }, flagClosePopup: function (D) { D.parent().find(".popup").fadeOut("fast", function() { $(this).remove() }) }, flagSubmit: function (G, E, D, H) { vote.flagClosePopup(G); var F = D.find("input:radio:checked").val(); var E = G.attr("id").substring("flag-post-".length); if (F == l.informModerator) { $.ajax({ type: "POST", url: "/messages/inform-moderator-about-post/" + E, dataType: "json", data: { fkey: fkey, msg: H.val() }, success: function (I) { showAjaxError(G.parent(), I.Message) }, error: function (I, K, J) { showAjaxError(G.parent(), (I.responseText && I.responseText.length < 100 ? I.responseText : "An error occurred during submission")) } }) } else { q(G, E, F, vote.flagSubmitCallback, { comment: H.val() }) } }, flagSubmitCallback: function (E, D, G) { if (G && G.Success) { if (G.Message) {} } else { var F = E.parent(); if (G && G.Message) { showAjaxError(F, G.Message) } else { showAjaxError(F, "A problem occurred during flagging") } } }
問題:當我包括一個新的HTML文件中的外部函數,添加標記的按鈕,點擊該按鈕並沒有
問題:
- 我在哪裏做錯了?
- 與JavaScript的按鈕標記有什麼關係(我不明白它是如何觸發一個事件,如果沒有onclick標籤)?
- 你將如何調試這個在stackoverflow?我使用Firebug,但是我不能設置任何斷點。請爲JavaScript揭示更好的調試器和(最終)編輯器。
請詳細描述,如果可能的話,我是網絡開發新手。
預先感謝您!
你從哪裏找到(什麼文件)? – 2010-02-11 19:04:29
http://jquery.com和http://jqueryui.com/ – 2010-02-11 19:05:41
你能回答第三個問題(對我來說最重要),我使用記事本,我沒有看到自己寫jquery。 – 2010-02-11 19:30:01