4

遇到一个问题,我有一个表单页面,我用 jQuery UI 对话框帮助打开它。但是在这个页面中,我需要在某些对象上使用 .click 事件,但它不起作用。此案例的代码是该页面中的简单 alert() 测试。

<input type='text' class='input_date' value='' readonly />

因此,当我单击该对话框表单内的输入字段时,我想得到警报。

$('.input_date').click(function() {
    alert('hi')
});

有什么问题,我怎样才能得到这个工作?谢谢

4

6 回答 6

4

这是因为在执行 jquery 时您没有要将事件绑定到的对象。

您需要delegate在父容器中绑定事件或在getScript加载对话框后使用 jquery 方法。

<div id="dialogContainer" />

$('#dialogContainer').on('click', '.input_date', function(){
   alert('hi');
});
于 2013-06-26T11:15:36.230 回答
1

If the dialog html is generated dynamically, your click callback wont be attached to the ".input_date" elment. Use this instead:

$('.input_date').live('click',function() {
    alert('hi')
});
于 2013-06-26T11:20:57.760 回答
0

它可以正常工作,您只需将属性设置为只读,如下所示:

<input type='text' class='input_date' value='' readonly="readonly">




         $('.input_date').click(function () {

              alert('hello');
          });
于 2013-06-26T11:28:56.657 回答
0

document.ready 中的其他选项:

$(".input_date").keyup(function(){
 alert('hi');
});

或者

$(".input_date").change(function(){
   alert('hi');
});
于 2013-06-26T11:14:27.600 回答
0

将您的点击事件放在 open 回调中,如下所示:

$( ".selector" ).dialog({
    open: function( event, ui ) {
       $('.input_date').click(function(){
          alert("hi!");
       });
   }
});
于 2013-06-26T11:17:42.223 回答
0

您还没有从 jquery 提供文档就绪功能。你可以这样做

$(function() {
// your code
});

您的程序示例

<html>
<head>
<title>Untitled</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(function() {
$(".input_date").bind("click", function(){
alert("hi");
});
});
</script>
</head>
<body>
<input type='text' class='input_date' value='' readonly />
</body>
</html>
于 2013-06-26T12:01:59.083 回答