0

私はあなたの助けが必要です。ヒットしたときに関数を実行していますkey=13。関数はajaxを呼び出していますが、その後、ajax関数は停止せず、常に機能しているため、一度停止する方法を知る必要があります。ここにいくつかのコード:

$(document).ready(function()
    {
        var editor = CKEDITOR.replace('articletext', {
            toolbar: [
                {name: 'basicstyles', items: ['Bold', 'Italic', 'RemoveFormat']},
                {name: 'document', items: ['Source', '-', 'NewPage', 'Preview', '-', 'Templates']}, // Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
                ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'], // Defines toolbar group without name. 

            ]
        });            

        editor.on("key", function(event) {
            //alert(event.data.keyCode);
        if (event.data.keyCode===13)
        {                
            this.document.on("keyup", ck_jq);

        }                   
        });

    });

function ck_jq()
    {
        var charsCount = CKEDITOR.instances['articletext'].getData().replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '').replace(/^\s+|\s+$/g, '');
        var wordCount = CKEDITOR.instances['articletext'].getData().replace(/[^\w ]/g, "").split(/\s+/);

        var max = <?php echo $orderInfo->wordstarget; ?>;

        var txtVal = $('#title').val(); //title field value
        var descVal = $('#description').val();//description field value

        var wordstitle = txtVal.trim().replace(/\s+/gi, ' ').split(' ').length;//words in title
        var wordsdesc = txtVal.trim().replace(/\s+/gi, ' ').split(' ').length;//words in description

        var text = CKEDITOR.instances['articletext'].getData();
        var valueOfText = text + txtVal + descVal;//add all fields text to one

        var wordsCountAll = wordCount.length + wordstitle + wordsdesc;//add all fields words to text
        xajax_checkKeywords(valueOfText, <?php echo $base_url[3]; ?>, wordsCountAll);           

    }

function ck_jq();そのため、 1回の実行後に停止する必要があります。

4

2 に答える 2

4

ドキュメントにイベント ハンドラを登録するのはなぜですか。ドキュメントで任意のキーが押されるたびにハンドラが登録されると、関数が呼び出され、この場合は登録されたハンドラck_jqが呼び出されるためです。

editor.on("key", function(event) {
    //alert(event.data.keyCode);
    if (event.data.keyCode===13)
    {                
        ck_jq()
    }                   
});
于 2013-08-22T07:19:38.140 に答える