我是JQuery新手,无法创建可重用的对话框。这是我的代码
$(function () {
$("#baseDialog").dialog({
autoOpen: false,
modal: true,
width: 520,
show: "blind",
hide: "explode"
});
$("#baseDialogOpener").click(function () {
$("#baseDialog").dialog("open");
return false;
});
我这样使用这个对话框:
<input id="baseDialogOpener" type="button" value="Update" />
<div id="baseDialog" title="Test Dialog" class="divClass">
<!-- here goes some ASP .NET MVC 2 code -->
</div>
问题是,我想重用这个对话框多次在许多页面,但有不同的html内容,我不知道如何做到这一点,因为我不能使用类属性,因为我需要使用的样式太。我不能在同一页面上使用具有相同值的id属性。我就不能这样用它吗?也许有另一个属性比id(类保留css)?<input id="baseDialogOpener" type="button" value="Update" />
<div id="baseDialog" title="Test Dialog" class="divClass">
<form>...</form>
</div>
<input id="baseDialogOpener" type="button" value="Update 2" />
<div id="baseDialog" title="Test Dialog 2" class="divClass">
<form>...</form>
</div>
期待您的回答。
UPDATE:我通过使用类属性执行上面的代码,但是当我单击按钮时,所有对话框都会立即出现。有办法解决这个问题吗?
对话框可以在打开时从服务器加载。htm文件中的内容。
你可以这样写:
$("#baseDialogOpener").click(function () {
$("#baseDialog").load('content.htm');
return false;
});
UPDATE:这段代码展示了如何让相同的.click()基于按钮显示不同的内容。
$("dialogButton.").click(function () {
$("#baseDialog").load($(this).data('content'));
return false;
});
<input type="button" value="first" id="button1" class="dialogButton" data-content="content1.htm" />
<input type="button" value="second" id="button2" class="dialogButton" data-content="content2.htm" />
您可以使用多个class
代替id
。
例如:
<div id="baseDialog" title="Test Dialog" class="divClass">
<div title="Test Dialog" class="divClass baseDialog">
然后你可以在你的javascript中引用它:
$("#baseDialogOpener").click(function () {
$("#baseDialog").dialog("open");
return false;
});
试
$(".baseDialogOpener").click(function () {
$(this).children(".baseDialog").dialog("open");
return false;
});
$(this)
只是抓取任何点击,所以你可以有多个类的相同类型。