1

特定のイベントで、特定のアクションをトリガーしたいと考えています。特に、 を実行してエディターを非表示にしたいと考えていtinymce.editors['myID'].hide();ます。このメソッドは、setback()コールバック関数内でのみ使用できます。なぜそうなのか、私にはわかりませんが、 JavaScript オブジェクトのプロパティが「時々」 undefinedであるで説明されているように、私よりもはるかに賢い人はそれが本当だと言います 。

setup()これを行う 1 つの方法は、コールバック関数に次のスクリプトを追加することです。

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

これは機能しますが、私の実際の例はもう少し複雑です。イベントはクリックで開始され、次に ajax 呼び出しを行い、返された JSON に基づいて他の作業を行い、エディターを非表示にする場合と非表示にしない場合があります。setup()アプリケーションの内部と他の部分の両方で、すべてのロジック/ajax を複製したくありません。代わりに、ロジック/ajaxをの外側に置き、setup()それを使用して何らかの方法でトリガーできることを望んtinymce.editors['myID'].hide();でいsetup()ます.

私にとってはかなり混乱しているので、これがあなたにとって意味があることを願っています。

実際の例: http://jsbin.com/ogilab/3/ | コード付き: http://jsbin.com/ogilab/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