如何将两个文档对象绑定到单个jquery函数

时间:2010-03-30 02:39:06

标签: javascript jquery

我有一个自定义jquery函数,我需要绑定到两个iframe文档对象。

目前它只适用于以下内容:

$(window.frames["iframeName"].document).bind('textselect', function(e) {

});

我想要做的是:

$(window.frames["iframeName"].document,window.frames["iframeName2"].document).bind('textselect', function(e) {

});

3 个答案:

答案 0 :(得分:1)

您可以将匿名函数转换为命名函数,并将其用于两个绑定,如下所示:

$(window.frames["iframeName"].document).bind('textselect', selectStuff);
$(window.frames["iframeName2"].document).bind('textselect', selectStuff);

function selectStuff(e) {
  //Stuff
}

答案 1 :(得分:0)

而不是使用匿名函数 - 创建一个命名函数

function myhandler(e)
{
    //body of function
}

然后使用命名函数:

$(window.frames["iframeName"].document).bind('textselect', myhandler);
$(window.frames["iframeName2"].document).bind('textselect', myhandler);

答案 2 :(得分:0)

另一种选择

<body>
    <iframe name="iframe1" src="text.html" width="100px" height="100px" style="border:1px solid #000"></iframe>
    <iframe name="iframe2" src="text.html" width="100px" height="100px" style="border:1px solid #000"></iframe>

    <script type="text/javascript">

    $(document).ready(function() {

        function bindFrameDocuments(eventType, handler) {
            for (var i = 0; i < window.frames.length; i++) {
                $(window.frames[i].document).bind(eventType, handler);
            }
        }

        bindFrameDocuments( 
            'textselect', 
            function(e) {
                // this function runs in the scope of the frame
                window.parent.console.log(e);
            } 
        );

    });

    </script>
</body>