Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取按钮';在jquery ui中单击并使用它时 $(函数(){ $(“.dialog”).dialog({ 自动打开:错误, 展示:{ 效果:“盲”, 持续时间:400 }, 隐藏:{ 效果:“盲”, 持续时间:400 } }); $(“.opener”)。在('click',MyJQFunction)上; }); 函数MyJQFunction(){ $(“.dialog”).dialog(“打开”); } >_Javascript_Jquery_Loops_While Loop - Fatal编程技术网

Javascript 如何获取按钮';在jquery ui中单击并使用它时 $(函数(){ $(“.dialog”).dialog({ 自动打开:错误, 展示:{ 效果:“盲”, 持续时间:400 }, 隐藏:{ 效果:“盲”, 持续时间:400 } }); $(“.opener”)。在('click',MyJQFunction)上; }); 函数MyJQFunction(){ $(“.dialog”).dialog(“打开”); } >

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

接触 我基本上是使用while循环创建一个表。 我为每个按钮和
分配特定的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);
});