Javascript函数显示对话框

时间:2015-09-17 12:40:51

标签: javascript jquery

任何人都知道如何在函数内调用对话框函数? 举个例子,我有这样的代码,工作正常

$("body").on("click", "#addItem", function (e) {
  e.preventDefault();
  var url = $(this).attr('href');

  $("#dialog").dialog({
    title: 'Add New',
    autoOpen: false,
    width: "900px",
    modal: true,
    draggable: true,
    open: function (event, ui) {
      $(this).load(url); 
    },
    close: function (event, ui) {
      $(this).dialog('close');
    }
  });

  $("#dialog").dialog('open');
  return false;
}); 

$("body").on("click", "#delItem", function (e) {
  e.preventDefault();
  var url = $(this).attr('href');

  $("#dialog").dialog({
    title: 'Delete item?',
    autoOpen: false,
    width: "900px",
    modal: true,
    draggable: true,
    open: function (event, ui) {
      $(this).load(url); 
    },
    close: function (event, ui) {
      $(this).dialog('close');
    }
  });

  $("#dialog").dialog('open');
  return false;
}); 

$("body").on("click", "#updItem", function (e) {
  e.preventDefault();
  var url = $(this).attr('href');

  $("#dialog").dialog({
    title: 'Update item',
    autoOpen: false,
    width: "900px",
    modal: true,
    draggable: true,
    open: function (event, ui) {
      $(this).load(url); 
    },
    close: function (event, ui) {
      $(this).dialog('close');
    }
  });

  $("#dialog").dialog('open');
  return false;
}); 

$("body").on("click", "#detItem", function (e) {
  e.preventDefault();
  var url = $(this).attr('href');

  $("#dialog").dialog({
    title: 'Item Detail',
    autoOpen: false,
    width: "900px",
    modal: true,
    draggable: true,
    open: function (event, ui) {
      $(this).load(url); 
    },
    close: function (event, ui) {
      $(this).dialog('close');
    }
  });

  $("#dialog").dialog('open');
  return false;
}); 

当我想一会儿,我意识到这是一个很长的剧本。一个带有相同内容的长脚本。

现在,我觉得这样的事情

function openDialog(title, url) {
  $("#dialog").dialog({
    $("#dialog").dialog({
    title: title,
    autoOpen: false,
    width: "900px",
    modal: true,
    draggable: true,
    open: function (event, ui) {
      $(this).load(url); 
    },
    close: function (event, ui) {
      $(this).dialog('close');
    }
  });

  $("#dialog").dialog('open');
  return false;
  })
}

$("body").on("click", "#addItem", function (e) {
  e.preventDefault();
  var url = $(this).attr('href'), title = 'some title';
  openDialog(title, url);
}); 

$("body").on("click", "#delItem", function (e) {
  e.preventDefault();
  var url = $(this).attr('href'), title = 'some title';
  openDialog(title, url);
}); 

etc ...

但是当我尝试更改代码时,出现了一些错误。出现一个对话框。但是网址不起作用,对话框内容也是空的。

有人有答案吗?还是有另一种方法来实现它?

由于

====编辑====

我的坏。我为参数功能订了错误的订单。声明函数时的正确顺序是title,然后是url。难怪没有内容。现在,我的代码可以正常使用上面的可编辑代码。感谢。

0 个答案:

没有答案