textarea WordPress解决方案中的Word Counter插件无法在jquery 1.11.0中运行

时间:2014-07-06 09:16:28

标签: javascript jquery wordpress

我使用此帖子的代码设置了我的表单:Counting and limiting words in a textarea

然而,小提琴代码是用jQuery 1.8.3编写的,但是它工作得很好但是,我的wordpress网站正在使用jquery 1.11.0 - 我需要对代码进行哪种修改才能使用它这个版本的jquery?代码如下......

感谢您的帮助。

<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script type='text/javascript'>//<![CDATA[ 
$(function(){
$(document).ready(function() {
    $("#word_count").on('keydown', function(e) {
        var words = $.trim(this.value).length ? this.value.match(/\S+/g).length : 0;
        if (words <= 200) {
            $('#display_count').text(words);
            $('#word_left').text(200-words)
        }else{
            if (e.which !== 8) e.preventDefault();
        }
    });
 }); 
});//]]>  
</script>

  <textarea name="txtScript" id="word_count" cols="30" rows="10"></textarea>
Total word Count : <span id="display_count">0</span> words. Words left : <span id="word_left">200</span>

1 个答案:

答案 0 :(得分:0)

好吧,不是jQuery版本产生影响,好像我改变了你在Counting and limiting words in a textarea这里找到的http://jsfiddle.net/7DT5z/9/答案中引用的小提琴,使用jQuery 1.11.0,如此处所见{{3它仍然有用。

我相信这是jQuery默认包含在wordpress中的方式,你在正常模式下引用jQuery,但默认情况下它在wordpress中以noConflict模式包含,这意味着$(别名if jQuery)不可用,您需要改为使用jQuery

所以你的代码需要阅读:

jQuery(function(){
jQuery(document).ready(function() {
    jQuery("#word_count").on('keydown', function(e) {
        var words = jQuery.trim(this.value).length ? this.value.match(/\S+/g).length : 0;
        if (words <= 200) {
            jQuery('#display_count').text(words);
            jQuery('#word_left').text(200-words)
        }else{
            if (e.which !== 8) e.preventDefault();
        }
    });
 }); 
});

另一种更简单的修改引用短格式别名$的代码的方法 这是。 - 在这里精心解释和演示http://jsfiddle.net/robschmuecker/7DT5z/21/

jQuery(document).ready(function( $ ) {
$("#word_count").on('keydown', function(e) {
        var words = $.trim(this.value).length ? this.value.match(/\S+/g).length : 0;
        if (words <= 200) {
            $('#display_count').text(words);
            $('#word_left').text(200-words)
        }else{
            if (e.which !== 8) e.preventDefault();
        }
    });
    });