您现在的位置是:首页 > 电脑技术查询 > web开发

jquery通过另一个frame修改元素内容时,怎么捕获变更事件change

编辑:chaxungu时间:2022-10-10 23:24:04分类:web开发

jquery通过另一个frame修改元素内容时,如何捕获变更事件change
<framesetrows="*,0"cols="70,30"frameSpacing="0"border="0"frameBorder="0">
<framesrc="action"name="fullWin"/>
<framesrc="rewrite"name="rewriteWindow"/>
</frameset>
我有这样一个frame,通过action中可以设置rewrite中元素(<inputtype="hidden"id=mb_snvalue="">)的值。
action中的jquery:
$(document).ready(function(){
varmbSnObj=$(window.parent.rewriteWindow.document).find("#mb_sn");
mbSnObj.val("123");
mbSnObj.trigger("change");
});
问题是我在rewrite中无法捕获change事件,哪里有什么问题吗?
rewrite中的jquery:
$(document).ready(function(){
$("#mb_sn").change(function(){
alert("9999");
});
});

------解决方案--------------------
$(document).ready(function(){
varmbSnObj=$(window.parent.rewriteWindow.document).find("#mb_sn");//不知道你这里是否已经获取到对象
mbSnObj.val("123");
mbSnObj.change(function(){
alert("9999");
});
mbSnObj.trigger("change");
});
------解决方案--------------------
引用:Quote: 引用:
$(document).ready(function(){
varmbSnObj=$(window.parent.rewriteWindow.document).find("#mb_sn");//不知道你这里是否已经获取到对象
mbSnObj.val("123");
mbSnObj.change(function(){
alert("9999");
});
mbSnObj.trigger("change");
});
你这种写法没有问题,但是我需要做的是触发事件跟捕获事件然后处理不在同一个文件里,alert("9999")的处理需要在rewrite中。

问题是隐藏域,用脚本改变隐藏域的值不会触发他的改变事件。你用个文本框试试,就可以了。
------解决方案--------------------

$("#mb_sn").change(function(){
alert("9999");
});
改成
$("#mb_sn").on("inputpropertychange",function(){
alert("9999");
});