【发布时间】:2011-07-13 02:08:51
【问题描述】:
我从我们当前的项目中发现了一个非常奇怪的错误:
做:
1) 点击第一个输入并选择任意日期
你会看到 - “日期选择器在 iframe 中发生了变化!”
2) 点击第二个输入,写一些符号,然后在页面的任意空白处按下
你会看到 - “iframe 中的普通输入发生了变化!” + "usual_input 已在 iframe 之外更改!"
在 iframe 内:
<input id="datepicker" /> <input id="usual_input" />
在 index.html 处绑定到此输入处的更改事件:
$(this).contents().find("#datepicker").change(... (1)
$(this).contents().find("#usual_input").change(... (2)
在 iframe.html 处绑定到此输入处的更改事件:
$("#datepicker").change(... (3)
$("#usual_input").change(... (4)
但是 №1 不能在任何浏览器中工作!
jquery ui 的日期选择器100% 正确触发更改事件。为什么我们不能在 iframe 之外绑定它?
【问题讨论】:
-
$(this).contentWindow.$("#datepicker")...以及通常的输入? -
它根本不起作用。 jquery contents() 正确选择 dom 元素。这里没有错误。错误在事件中
-
哎呀,我的意思是
$(this)[0].contentWindow.$("#datepicker"),试试吧,因为它返回的内容不等于.find()返回的内容... -
它有效!请粘贴为答案!
标签: jquery html events dom iframe