日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

javascript - jQuery截取字符串長度的插件,遇到不能正確獲取元素內text()的問題

瀏覽:227日期:2023-05-01 09:49:01

問題描述

做了個截取字符串長度的插件,當字符超過指定個數后截取字符,并鼠標跟隨顯示完整的內容提示。單獨寫功能的時候是可以實現(xiàn)的,但用下面的方式做成插件后,發(fā)現(xiàn)鼠標跟隨的內容都是最后一條的,而且不管字符有沒有超過都會顯示最后一條的內容,因為有部分內容時動態(tài)加載的,所以用了事件委托的方式。

(function($, window, document, undefined) { // 創(chuàng)造一個公共變量來構建一個私有方法 var privateFunction = function() {} var methods = {// 字符截取,鼠標觸發(fā)跟隨詳情提示框subString: function (options) { return this.each(function(index) {var $this = $(this);var defaults = { el: ’’, // 目標元素 charNum: 22, // 截取字符個數 hasDot: true, // 是否顯示省略號 // dotColor: ’#666’ // 省略號顏色 allTextp: ’#allText’, // 鼠標跟隨完整文本框的p isPrompt: true // 是否顯示提示框};var settings = $.extend({}, defaults, options), allTextp = settings.allTextp.replace(/[#|.]/g, ’’), strText = $(settings.el).eq(index).text(), chineseRegex = /[^x00-xff]/g, strLength = strText.replace(chineseRegex, ’**’).length, newLength = 0, newStr = ’’, singleChar = ’’;function _subString(str, len, hasDot) { for (var i = 0; i < strLength; i++) {singleChar = str.charAt(i).toString();singleChar.match(chineseRegex) != null ? newLength += 2 : newLength++;if (newLength > len) break;newStr += singleChar; } if (hasDot && strLength > len) newStr += ’...’; return newStr;}// 截取字符串$this.html(_subString(strText, settings.charNum, settings.hasDot));// 鼠標跟隨是否顯示完整文本框if ( (strLength > settings.charNum) && settings.isPrompt ) { $(document).on(’mouseover’, settings.el, function(event) {if ( settings.allTextp.indexOf(’#’) != -1 ) $(’body’).append(’<p />’);if ( settings.allTextp.indexOf(’.’) != -1 ) $(’body’).append(’<p />’); }); $(document).on(’mousemove’, settings.el, function(event) {$(settings.allTextp).text(strText).show().css({ left: event.pageX + 30, top: event.pageY}); }); $(document).on(’mouseout’, settings.el, function(event) {$(settings.allTextp).remove(); }); // $this.mouseover(function() { // if ( settings.allTextp.indexOf(’#’) != -1 ) $(’body’).append(’<p />’); // if ( settings.allTextp.indexOf(’.’) != -1 ) $(’body’).append(’<p />’); // }); // $this.mousemove(function(event) { // $(settings.allTextp).text(strText).show().css({ // left: event.pageX + 30, // top: event.pageY // }); // }); // $this.mouseout(function() { // $(settings.allTextp).remove(); // });} });}}; $.fn.inCommonUseJsPlugin = function() {var method = arguments[0];if(methods[method]) { method = methods[method]; arguments = Array.prototype.slice.call(arguments, 1);} else/* if( typeof(method) == ’object’ || !method ) { method = methods.init;} else */{ $.error( ’Method ’ + method + ’ does not exist on jQuery.pluginName’ ); return this;}return method.apply(this, arguments); }})(jQuery, window, document);

問題解答

回答1:

上班時間腦子漿糊了,回家重新寫了一遍,已經解決了,換個思路問題就簡單很多了!

/** * * @authors xxy * @date 2017-06-26 19:19:42 * @url http://www.hifrontend.com */(function($, window, document, undefined) { var methods = {// 字符截取,鼠標觸發(fā)跟隨詳情提示框subString: function (options) { var $this = $(this); var defaults = {el: ’li’, // 目標元素charNum: 22, // 截取字符個數hasDot: true, // 是否顯示省略號// dotColor: ’#666’ // 省略號顏色allTextp: ’#allText’, // 鼠標跟隨完整文本框的pisPrompt: true // 是否顯示提示框 }; var settings = $.extend({}, defaults, options); function _subString(str, len, hasDot) {var newLength = 0;var newStr = '';var chineseRegex = /[^x00-xff]/g; // 提取中文漢字var singleChar = '';var strLength = str.replace(chineseRegex, '**').length; // 將中文替換成 ** 并計算長度for (var i = 0; i < strLength; i++) { singleChar = str.charAt(i).toString(); (singleChar.match(chineseRegex) != null) ? newLength += 2 : newLength++; if (newLength > len) break; newStr += singleChar;}if (hasDot && strLength > len) newStr += '...';return newStr; } $(settings.el).each(function() {var text = $(this).text();$(this).attr(’data-text’, text); $(this).html(_subString(text, settings.charNum, settings.isPrompt)); }); // 鼠標跟隨是否顯示完整文本框 $(document).on(’mouseover’, settings.el, function() {var allTextLen = $(this).attr(’data-text’).replace(/[^x00-xff]/g, '**').length;if ( allTextLen > settings.charNum ) { var allTextp = settings.allTextp.replace(/[#|.]/g, ’’) if ( settings.allTextp.indexOf(’#’) != -1 ) $(’body’).append(’<p />’); if ( settings.allTextp.indexOf(’.’) != -1 ) $(’body’).append(’<p />’);} }); $(document).on(’mousemove’, settings.el, function(event) {$(settings.allTextp).text( $(this).attr(’data-text’) ).show().css({ left: event.pageX + 30, top: event.pageY}); }); $(document).on(’mouseout’, settings.el, function() {$(settings.allTextp).remove() }); return this;} }; $.fn.inCommonUseJsPlugin = function() {var method = arguments[0];if(methods[method]) { method = methods[method]; arguments = Array.prototype.slice.call(arguments, 1);} else { $.error( ’Method ’ + method + ’ does not exist on jQuery.pluginName’ ); return this;}return method.apply(this, arguments); }})(jQuery, window, document);回答2:

var settings = $.extend({}, defaults, options), allTextp = settings.allTextp.replace(/[#|.]/g, ’’), strText = $(settings.el).eq(index).text(), chineseRegex = /[^x00-xff]/g, strLength = strText.replace(chineseRegex, ’**’).length, newLength = 0, newStr = ’’, singleChar = ’’;

像這種寫法,allTextp 算局部的還是全局的?據說某些比較老的瀏覽器會認為是全局的。這樣的話,鼠標跟隨內容都是最后一條就可以解釋了。目前從代碼來看我還看不出來其它可能造成這一現(xiàn)象的問題。

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美亚洲一级| 日韩欧美三级| 免费看的黄色欧美网站| 国产精品88久久久久久| 宅男在线一区| 欧美精品激情| 丝袜国产日韩另类美女| 久久福利一区| 亚洲激情偷拍| 亚洲一区二区三区中文字幕在线观看| 亚洲综合另类| 日韩精选在线| 国产精品亚洲四区在线观看| 麻豆国产一区| 日韩电影免费网址| 999国产精品视频| 日韩午夜高潮| 亚洲精品极品| 欧美日韩亚洲一区三区| 丰满少妇一区| 欧美 日韩 国产一区二区在线视频| 99国产精品99久久久久久粉嫩| 中文字幕av亚洲精品一部二部| 亚洲影视一区二区三区| 欧美午夜网站| 91一区二区三区四区| 91精品电影| 日韩国产高清在线| 91欧美国产| 亚洲男女av一区二区| 亚洲1区在线| 精品国产a一区二区三区v免费| 亚洲不卡系列| 在线精品一区| 国产一区一一区高清不卡| 亚洲午夜精品久久久久久app| 久久国产精品毛片| 国产精一区二区| 国产色播av在线| 亚洲一区黄色| 国产精品久久久久久久久久妞妞| 精品捆绑调教一区二区三区| 亚洲理论在线| 精品国产亚洲一区二区三区在线 | 麻豆一区二区99久久久久| 色综合五月天| 男女男精品网站| 欧美激情视频一区二区三区免费 | 欧美福利一区| 青草久久视频| 色综合www| 亚洲69av| 日韩一区二区三区免费| 日本精品在线播放| 一区二区三区四区在线看| 欧美一级二区| 一本一道久久a久久精品蜜桃| 国产精品亚洲二区| 夜夜精品视频| 国产精品白丝久久av网站| 在线日韩电影| 国产精品一区二区精品视频观看| 播放一区二区| 久久99精品久久久久久园产越南| 好看的亚洲午夜视频在线| 欧美激情福利| 蜜桃一区二区三区在线| 日韩电影二区| 国产极品模特精品一二| 蜜桃av一区二区| 久久久精品网| 国产精品xvideos88| 男女精品网站| 电影天堂国产精品| 日本综合精品一区| 亚洲免费观看| 日韩电影二区| 久久亚洲精品中文字幕| 亚洲精品观看| 99国产成+人+综合+亚洲欧美| 激情综合五月| 日韩高清电影一区| 国产精品美女| 日韩电影免费网站| 久久99精品久久久久久园产越南 | 久久av在线| 欧美中文字幕一区二区| 国产高潮在线| 清纯唯美亚洲综合一区| 国产亚洲毛片| 亚洲不卡av不卡一区二区| 美女国产精品久久久| 日本成人精品| 亚洲免费成人av在线| 九九久久婷婷| 日本免费一区二区三区四区| 欧美国产另类| 国产一级成人av| 四虎精品永久免费| 日韩专区一卡二卡| 五月天综合网站| 亚洲福利一区| 日本久久成人网| 成人污污视频| 麻豆国产精品视频| 美女精品一区二区| 麻豆成人综合网| 麻豆成人91精品二区三区| 国产精品欧美在线观看| 青草av.久久免费一区| 视频国产精品| 色8久久久久| 最新亚洲国产| 蜜臀91精品一区二区三区| 西西人体一区二区| 久久香蕉精品| 免费人成网站在线观看欧美高清| 91超碰国产精品| 午夜国产一区二区| 日韩一级不卡| 日韩精品一级二级| 六月婷婷一区| 在线精品观看| 日本欧美大码aⅴ在线播放| 日韩国产在线观看一区| 久久精品97| 国产精品日本一区二区不卡视频| 国产精品天堂蜜av在线播放| 国产精品1区在线| 精品一区二区三区免费看| 精品视频高潮| 欧美香蕉视频| 1024精品久久久久久久久| 黄色亚洲在线| 亚洲欧美日韩国产综合精品二区 | 成人在线丰满少妇av| 天堂а√在线最新版中文在线| 日韩欧美另类一区二区| 欧美 日韩 国产精品免费观看| 日韩视频一区| 日韩欧美中文字幕一区二区三区| 国产乱人伦精品一区| 精品视频黄色| 亚洲一级少妇| 免费视频久久| 欧美亚洲国产日韩| 精品国产亚洲一区二区在线观看| 蜜桃av.网站在线观看| 女人av一区| 日韩国产精品久久久久久亚洲| 国产精品高清一区二区| 中文在线а√天堂| 亚洲黄色在线| 欧美日韩一区二区三区四区在线观看| 国精品产品一区| 黄色亚洲精品| 国产伦精品一区二区三区视频| 伊伊综合在线| 欧美特黄一级| 国产亚洲一卡2卡3卡4卡新区| 综合日韩av| 丝袜亚洲另类欧美| 久久av资源| 国产综合亚洲精品一区二| 日本亚州欧洲精品不卡| 国产在线视频欧美一区| 黄色日韩在线| 久久99精品久久久野外观看| 麻豆精品蜜桃| 日本亚洲三级在线| 久久久久久色| 久久夜夜操妹子| 一区二区三区四区精品视频| 日韩高清二区| 91精品久久久久久久久久不卡| 亚洲精品观看| 91麻豆国产自产在线观看亚洲| 久久午夜精品一区二区| 久草精品视频| 美女网站久久| 国产一区二区三区四区二区| 午夜av一区| 久久精品一本| 视频一区在线视频| 色婷婷综合网| 日本不卡视频一二三区| 日韩国产一区| 日韩精品国产欧美| 久久久久国产精品一区三寸| 日韩不卡手机在线v区| 色老板在线视频一区二区| 青草久久视频| 一区福利视频| 丁香婷婷久久| 日本欧美一区| 中文日韩在线| 日韩综合一区| 国产三级一区| 日韩精品一级二级| 欧美日韩精品免费观看视欧美高清免费大片 |