3

tinymce 4.0.2 コンテンツの選択ボックスにクリック イベント ハンドラーをアタッチするために多くのことを試みましたが、成功しませんでした。カスタムプラグインでこれを行う方法を知っている人はいますか? 以下は私が試したものですが、機能していません。

ctr++;                      
var id = 'vnetforms_elem_'+ctr;
editor.insertContent('<select id="'+id+'"><option>X</option</select>');                     
tinymce.dom.DOMUtils.bind(tinymce.activeEditor.dom.select('#'+id)[0],'click',function() {
    alert('click!');
});
4

2 に答える 2

2

私は自分の問題を解決しました。

これは実際には Firefox のバグであることが判明しました。Firefox の select 要素が編集可能としてマークされている場合、イベントは発生しません。以下の方法で解決できました。

ctr++;                      
var id = 'vnetforms_elem_'+ctr;
editor.insertContent('<select id="'+id+'"></select>');                      
tinymce.activeEditor.dom.select('#'+id)[0].contentEditable = 'false';                       
addEvent(tinymce.activeEditor.dom.select('#'+id)[0],'click',function() {
    alert('MyClick');
});

addEvent がカスタム プラグインで次のように定義されている場所

var addEvent = function(node,eventName,func){

    if ("undefined" == typeof node || null == node) {              
    } else {
        if (!node.ownerDocument.addEventListener && node.ownerDocument.attachEvent) {   
            node.attachEvent('on' + eventName, func);
        } else node.addEventListener(eventName,func,false);
    }
}; this.addEvent = addEvent;
于 2013-08-02T09:58:11.600 に答える