jquery对话框可拖动功能无法正常工作

时间:2016-04-07 05:11:58

标签: javascript jquery

我有一个javascript文件,其中包含以下用于弹出对话框div标签的jquery代码,其中包含textarea和一个按钮。我想让这个弹出窗口可拖动,但是即使在使用draggable:true功能并且还使用父div标签启用可拖动功能时它不起作用.....任何建议?

 $(".showDialog").click(__bind(function() {

    var element, dialogId, textareaHtml;

    dialogId = "" + this.namespace + "dialog";
    textareaHtml = "<textarea style=\"width: 564px; height: 242px;\" id=\"textareadialog\" name=\"description_dialog_textarea\">" + ($("#description").val()) + "</textarea><input readonly type=\"text\" class=\"counter\" name=\"counter\" size=\"4\" maxlength=\"4\" value=\"4000\">;
    $("<div id=\"" + dialogId + "\>").html(textareaHtml).dialog({
      autoOpen: true,
      title: "Description",
      modal: true,
      width: 625,
      height: 360,
      draggable: true,
      buttons: {
        save: __bind(function() {
          var val;
          val = $("#textareadialog").val();
          $("#description").val(val);
          $("#description_fake").html(val);
          $("#description_fake").attr("title", val);
          $('#' + dialogId).dialog("close");
          $('#' + dialogId).remove();
          this.makeDescriptionCluetips();
          return this.update();
        }, this)
      },
      close: function() {
        return $('#' + dialogId).remove();
      }
    });

1 个答案:

答案 0 :(得分:0)

当你有一个带有'双引号的字符串时,最好将"单引号括起来,这是一个避免错误的黑客攻击。

更改行

textareaHtml = "<textarea style=\"width: 564px; height: 242px;\" id=\"textareadialog\" name=\"description_dialog_textarea\">" + ($("#description").val()) + "</textarea><input readonly type=\"text\" class=\"counter\" name=\"counter\" size=\"4\" maxlength=\"4\" value=\"4000\">;
$("<div id=\"" + dialogId + "\>").html(textareaHtml).dialog({

textareaHtml = '<textarea style="width: 564px; height: 242px;" id="textareadialog" name="description_dialog_textarea">'+$("#description").val()+'</textarea><input readonly type="text" class="counter" name="counter" size="4" maxlength="4" value="4000">';
$('<div id="'+dialogId+'">').html(textareaHtml).dialog({

而且,如果你说,你的目标是id,那么直接使用$("#"+dialogId)代替$('<div id="'+dialogId+'">')