【发布时间】:2014-07-02 02:36:32
【问题描述】:
我想知道是否有办法将脚本合并到文档的头部,这样当您有多个对话框时,您的头部就不会占用这么大的块?例如,如果您有 10 多个对话框,您将输入 10 次以下内容。这是超级多余的。有没有办法只说#dialog1-20 并将所有内容合二为一?
javascript:
// Dialog 1
$('#dialog1').dialog({
stack: false,
autoOpen: false,
width: 500,
buttons: {
"OK": function() {
(...some action...)
},
"Close": function() {
$(this).dialog("close");
}
}
});
// Dialog Link 1
$('#id_1').click(function(){
$('#dialog1').dialog('open');
return false;
});
// Dialog 2
$('#dialog2').dialog({
stack: false,
autoOpen: false,
width: 500,
buttons: {
"OK": function() {
(...some action...)
},
"Close": function() {
$(this).dialog("close");
}
}
});
// Dialog Link 2
$('#id_2').click(function(){
$('#dialog2').dialog('open');
return false;
});
HTML:
<div id='dialog1' title='title1' style='display: none;'>(...)</div>
<div id='dialog2' title='title2' style='display: none;'>(...)</div>
编辑:
正如建议的那样(感谢 Pietu1998、Ed 和 Osama.070032),我改变了课堂风格,但我仍然缺少一些东西。此外,我需要在元素之间传递变量,这是我不知道该怎么做的事情。我的代码现在如下所示 - 您可以在下面的 cmets 中看到我的问题:
<script type='text/javascript'>
$(function(){
for (i = 0; i <= <? echo $items_count; ?>; i++) {
$('#dialog_name_' + i).dialog({
autoOpen: false,
width: 600,
modal: true,
buttons: {
'Cancel': function() {
$(this).dialog('close');
},
'OK': function() {
$.ajax({
url: 'some_file.php',
type: 'POST',
data: 'item_id=' + i,// here I need to pass variable
});
$(this).dialog('close');
}
}
});
$('#link_dialog_name_' + i).click(function(){
$('#dialog_name_' + i).dialog('open');
return false;
});
}// for end
});
</script>
<?
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {// I am wondering if I can get rid of this loop and pass variable to see item's name below
?>
<a href='#' id='link_dialog_name_<? echo $line["item_id"]; ?>'></a>
<div id='dialog_name_<? echo $line["item_id"]; ?>' title='Name' style='display: none;'>
<?
if ($line["name"]=="") {
echo "Number 1 does not have any name.";
} else {
echo "The name of number 1 is ".$line["name"];
}
}// while end
?>
【问题讨论】:
-
如果您可以修改 HTML,请在所有对话框上添加
class并使用$(".class")。
标签: jquery