Javascript 如何获取按钮';在jquery ui中单击并使用它时 $(函数(){ $(“.dialog”).dialog({ 自动打开:错误, 展示:{ 效果:“盲”, 持续时间:400 }, 隐藏:{ 效果:“盲”, 持续时间:400 } }); $(“.opener”)。在('click',MyJQFunction)上; }); 函数MyJQFunction(){ $(“.dialog”).dialog(“打开”); } >
接触 我基本上是使用while循环创建一个表。 我为每个按钮和Javascript 如何获取按钮';在jquery ui中单击并使用它时 $(函数(){ $(“.dialog”).dialog({ 自动打开:错误, 展示:{ 效果:“盲”, 持续时间:400 }, 隐藏:{ 效果:“盲”, 持续时间:400 } }); $(“.opener”)。在('click',MyJQFunction)上; }); 函数MyJQFunction(){ $(“.dialog”).dialog(“打开”); } >,javascript,jquery,loops,while-loop,Javascript,Jquery,Loops,While Loop,接触 我基本上是使用while循环创建一个表。 我为每个按钮和分配特定的id。 现在,我想抓取这个id,点击按钮时, 显示特定的 但是,当我单击一个按钮时,所有按钮同时出现 如何解决此问题?如果要获取按钮前面的对话框,您可以始终使用this关键字引用其处理程序中的按钮,然后使用prev获取对话框div。您不一定需要至少包含已发布结构的id 试着这样做: <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes
分配特定的id。
现在,我想抓取这个id,点击按钮时,
显示特定的
但是,当我单击一个按钮时,所有按钮同时出现
如何解决此问题?如果要获取按钮前面的对话框,您可以始终使用
this
关键字引用其处理程序中的按钮,然后使用prev
获取对话框div。您不一定需要至少包含已发布结构的id
试着这样做:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
$(function() {
$(".dialog").dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 400
},
hide: {
effect: "blind",
duration: 400
}
});
$( ".opener" ).on ('click',MyJQFunction);
});
function MyJQFunction() {
$(".dialog").dialog( "open" );
}
</script>
<?php
$x = 0;
while($x < 5){
$x = $x+1;
$did1 = 'dialog'.$x;
$did2 = 'opener'.$x;
?>
<div class = "dialog" id= <?php echo $did1; ?> title=<?php echo $did1; ?>>
<p> <?php echo $did1; ?> </p>
</div>
<button class= "opener" > <?php echo $did2; ?> Contact</button>
<?php
}//end of while loop
?>
更新
这将不起作用,因为jquery对话框是在单击按钮之前创建的,并且它们被放置在主体的底部。因此,将用于按钮生成的php代码更改为:
i、 e将数据目标
属性附加到具有特定id的对话框
function MyJQFunction() {
$(this).prev(".dialog").dialog( "open" );
//to get the id of the dialog
//$(this).prev(".dialog")[0].id;
}
完整代码:
function MyJQFunction() {
$($(this).data('target')).dialog( "open" );
}
$(函数(){
$(“.dialog”).dialog({
自动打开:错误,
展示:{
效果:“盲”,
持续时间:400
},
隐藏:{
效果:“盲”,
持续时间:400
}
});
$(“.opener”)。在('click',MyJQFunction)上;
});
函数MyJQFunction(){
$($(this.data('target')).dialog(“打开”);
}
>
您应该使用这样的数据属性
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
$(function() {
$(".dialog").dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 400
},
hide: {
effect: "blind",
duration: 400
}
});
$( ".opener" ).on ('click',MyJQFunction);
});
function MyJQFunction() {
$($(this).data('target')).dialog( "open" );
}
</script>
</head>
<body>
<?php
$x = 0;
while($x < 5){
$x = $x+1;
$did1 = 'dialog'.$x;
$did2 = 'opener'.$x;
?>
<div class = "dialog" id= <?php echo $did1; ?> title=<?php echo $did1; ?>>
<p> <?php echo $did1; ?> </p>
</div>
<button class= "opener" data-target="#<?php echo $did1; ?>"> <?php echo $did2; ?> Contact</button>
<?php
}//end of while loop
?>
</body>
</html>
要获取ID,如果要获取对象的类,可以使用.attr('ID')或.attr('class')
例如:
<button class= "opener" data-dialog="<?php echo $did2; ?>"><?php echo $did2; ?> Contact</button>
function MyJQFunction() {
var dialog = $(this).attr('data-dialog');
$(dialog).dialog("open");
}
12345
$('button')。在('click',function()上{
var id=$(this.attr('id');
警报(id);
});
出于某种原因,这似乎无法解决我的问题。能把我的密码寄给你让你检查一下吗?非常感谢。@user2840665请在问题本身中发布您的代码,如果不是我,其他人肯定会帮助您。@user2840665您有多少对话和相应的按钮?我有很多。对不起,我是jquery新手,所以我对这个不太在行。While循环正在创建许多them@user2840665你能显示呈现的html。。。你发布的内容似乎结构不正确。另外,如果您在conosle中看到任何错误,请在代码中放置一些调试器语句,并检查它是否进入处理程序中,如果是,它是否正在获取div元素等。。
<button class= "opener" data-dialog="<?php echo $did2; ?>"><?php echo $did2; ?> Contact</button>
function MyJQFunction() {
var dialog = $(this).attr('data-dialog');
$(dialog).dialog("open");
}
<button id='12345'>12345</button>
$('button').on('click',function() {
var id = $(this).attr('id');
alert(id);
});