jquery ui动态对话框
jquery ui dynamic dialog
我对js和jquery相当陌生。我基本上希望能够从onClick事件或附加到<a>
的东西中更改表和id变量,这样我以后就可以用php修改变量了。这只是概念的证明,自从我做了修改后似乎就不起作用了。有没有一种方法可以将变量从a传递到函数?
总体目标:我想要一个内联onclick,它将把id和表名从loadMe传递给函数并显示table_render.php?id=someid&table=对话框中的sometable。
<script>
$(function loadMe(table, id) {
$( "#dialog-view" ).dialog({
autoOpen: false,
height: 600,
width: 700,
modal: true,
buttons: {
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
$( "#create-view" ).click(function() {
$( "#dialog-view" ).load("table_render.php?id=" + id + "&table=" + table + "").dialog("open");
});
});
</script>
<a href="" id="create-view" onClick="loadMe(testimonials,1)">Some text</a>
<div id="dialog-view" title="">
</div>
您要连接两次事件,一次通过onclick,一次是通过jQuery。你需要选择一个。
如果您选择jQuery方式(推荐),您将获得jQuery参数(它只是一个arg,event)。但是,jQuery会将this
设置为触发事件的元素(在本例中,是您的A标记)。您可以使用它从A标记中获取数据。
例如,如果你想要点击的A的ID,你可以在你的处理程序中这样做:
var clickedId = $(this).attr('id');
如果你想为每个A标记存储一些任意的信息(例如"tableName"),你可以使用HTML5数据属性(最好),也可以只制作你自己的属性(这会起作用,但"形式不好")。例如:
<a tableName='testimonials'>
var clickedFoo = $(this).attr('tableName');
或者(稍微好一点):
<a data-tableName='5'>
var clickedTableName = $(this).attr('data-tableName');
// Also, I believe this would work:
var clickedTableName = $(this).data('tableName');
*编辑*
只是想进一步澄清一下,基本的总体想法是:
1) 你通过PHP 在页面上写下你的A标签
1A)当您写出它们时,您将特定于它们的任何数据以一个或多个属性(例如id='foo' data-bar='baz'
)的形式放在A标记上。
2) 你还写了一些Javascript代码,上面写着"嘿,每当点击A标签时,运行这个函数"
3) 在连接到A标记的点击事件的函数中,您使用this
变量(指向A标记本身)来获得需要的数据("变量")
3A)例如,您可以使用JQuery"attr"方法:$(this).attr('id')
4) 利润!(或者至少用刚刚得到的数据做一些有用的事情)
所以我开始工作了。。。这是溶液
function createViewer(id, table) {
var id;
var table;
$("#dialog-view").dialog({
autoOpen: false,
width:650,
minHeight:400,
show:{effect: "fade", duration: 500},
hide:"clip",
resizable: false,
modal: true,
buttons: {
"Close": function () {
$(this).dialog("close");
}
}
});
$("#dialog-view").load("table_render.php?id=" + id + "&table=" + table + "").dialog("open");
};
和内联代码
<a href="#" onMouseDown="createViewer(<?php echo $row_testimonials['id'];?>,'testimonials');">View Quote</a>
您可能希望将$(document).ready()
放在初始化对话框和绑定onclick事件的函数周围。然后打开ajax请求回调中的对话框。
这样,我想您就可以使用loadFunction来消除onclick属性。(疲劳)
类似于:
HTML:
<a href="#" id="trigger" data-my-id="123" data-my-table="myTable">
trigger
</a>
<div id="dialog">
Dialog Contents....
</div>
JS:
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
height: 600,
width: 700,
modal: true,
buttons: {
Cancel: function() {
$(this).dialog("close");
}
}
});
$("#trigger").click(function() {
var id = parseInt( $(this).attr('data-my-id');
var table = $(this).attr('data-my-table');
$("#dialog").load("table_render.php?id=" + id + "&table=" + table + "",
function(){
$("#dialog").dialog("open");
});
});
});
应该做到这一点。
- CKEditor v4:自制插件中对话框的动态标题
- 在动态加载的对话框中执行Javascript
- 我们可以加载动态角度对话框吗
- 动态创建的 jQuery UI 对话框错误后 jQuery 2.2.0 升级
- 关闭动态创建的 jQuery-ui 对话框
- jquery ui动态对话框
- jQuery Mobile//主题化我的动态对话框
- 将动态OG标题,描述和图像传递到javascript中的Facebook共享对话框
- 如果我动态创建jquery UI对话框,除了在单页应用程序中调用对话框(“关闭”)之外是否有任何清理
- 如何获取离子对话框中动态加载的元素的元素高度
- 使用 JavaScript 打开“另存为”/“下载”对话框以下载动态创建的文件
- 如何将jquery数组添加到html表单中,以将复选框动态添加到对话框中
- 动态覆盖jqueryUI对话框按钮(保存,取消等到用户选择)文本
- 带有传递参数的 jquery UI 对话框动态函数
- Dojo对话框动态内容
- 道场对话框动态内容 2.
- 对话框'动态内容只显示一次后,第一个按钮点击
- JQuery UI对话框:动态OnClick监听器
- Jquery UI 对话框 - 动态加载对话框,而不仅仅是内容
- jQuery对话框动态高度