1

在给定事件时,我希望触发给定动作。特别是,我想通过执行隐藏编辑器tinymce.editors['myID'].hide();。原来这个方法只在setback()回调函数中可用。为什么会这样,我不知道,但比我聪明得多的人说这是真的,因为 JavaScript 对象属性“有时”未定义

一种方法是在setup()回调函数中添加以下脚本。

$('#hide1').click(function(){tinymce.editors['myID'].hide();});

虽然这会起作用,但我的真实示例要复杂一些。该事件将从单击开始,然后执行 ajax 调用,并根据返回的 JSON 执行一些其他工作,并且可能会或可能不会隐藏编辑器。我真的不想setup()在应用程序内部和其他部分复制所有逻辑/ajax。相反,我希望我可以将逻辑/ajax 放在外部setup()并使用它来以某种方式触发tinymce.editors['myID'].hide();位于setup().

我希望这对你有意义,因为这对我来说很困惑。

现场示例:http: //jsbin.com/ogirab/3/ | 带代码:http: //jsbin.com/ogirab/3/edit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
        <title>Testing</title>  
    </head>

    <body>
        <form>
            <textarea id="myID"></textarea>
        </form>
        <button id="hide1">Hide using event linked directly in setup</button>
        <button id="hide2">Hide by mimicing an event</button>
        <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
        <script src="http://tinymce.cachefly.net/4.0/tinymce.min.js"></script>
        <script type="text/javascript"> 
            $(function(){
                tinymce.init({
                    selector: "#myID",
                    setup:    function(e) {
                        $('#hide1').click(function(){tinymce.editors['myID'].hide();});
                    }
                });
                $('#hide2').click(function(){alert('trigger event which will cause function in tinymce::setup() to trigger.');});
            });
        </script>
    </body> 
</html>
4

0 回答 0