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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

問題描述

做了個(gè)截取字符串長(zhǎng)度的插件,當(dāng)字符超過指定個(gè)數(shù)后截取字符,并鼠標(biāo)跟隨顯示完整的內(nèi)容提示。單獨(dú)寫功能的時(shí)候是可以實(shí)現(xiàn)的,但用下面的方式做成插件后,發(fā)現(xiàn)鼠標(biāo)跟隨的內(nèi)容都是最后一條的,而且不管字符有沒有超過都會(huì)顯示最后一條的內(nèi)容,因?yàn)橛胁糠謨?nèi)容時(shí)動(dòng)態(tài)加載的,所以用了事件委托的方式。

(function($, window, document, undefined) { // 創(chuàng)造一個(gè)公共變量來構(gòu)建一個(gè)私有方法 var privateFunction = function() {} var methods = {// 字符截取,鼠標(biāo)觸發(fā)跟隨詳情提示框subString: function (options) { return this.each(function(index) {var $this = $(this);var defaults = { el: ’’, // 目標(biāo)元素 charNum: 22, // 截取字符個(gè)數(shù) hasDot: true, // 是否顯示省略號(hào) // dotColor: ’#666’ // 省略號(hào)顏色 allTextp: ’#allText’, // 鼠標(biāo)跟隨完整文本框的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));// 鼠標(biāo)跟隨是否顯示完整文本框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:

上班時(shí)間腦子漿糊了,回家重新寫了一遍,已經(jīng)解決了,換個(gè)思路問題就簡(jiǎn)單很多了!

/** * * @authors xxy * @date 2017-06-26 19:19:42 * @url http://www.hifrontend.com */(function($, window, document, undefined) { var methods = {// 字符截取,鼠標(biāo)觸發(fā)跟隨詳情提示框subString: function (options) { var $this = $(this); var defaults = {el: ’li’, // 目標(biāo)元素charNum: 22, // 截取字符個(gè)數(shù)hasDot: true, // 是否顯示省略號(hào)// dotColor: ’#666’ // 省略號(hào)顏色allTextp: ’#allText’, // 鼠標(biāo)跟隨完整文本框的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; // 將中文替換成 ** 并計(jì)算長(zhǎng)度f(wàn)or (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)); }); // 鼠標(biāo)跟隨是否顯示完整文本框 $(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 算局部的還是全局的?據(jù)說某些比較老的瀏覽器會(huì)認(rèn)為是全局的。這樣的話,鼠標(biāo)跟隨內(nèi)容都是最后一條就可以解釋了。目前從代碼來看我還看不出來其它可能造成這一現(xiàn)象的問題。

標(biāo)簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆国产精品视频| 久久精品国内一区二区三区| 91欧美在线| 久久亚州av| 久久精品女人| 国产精品毛片一区二区在线看| 免费一区二区三区在线视频| 欧美激情日韩| 福利一区二区免费视频| 国产中文在线播放| 伊伊综合在线| 久久久久久久久久久9不雅视频| 国产精品成人一区二区不卡| 国产精品久久久久久久久久10秀| 一区二区精品伦理...| 日韩欧美一区二区三区在线观看| 久久久久欧美精品| 亚洲午夜精品久久久久久app| 136国产福利精品导航网址| 欧美日韩国产在线一区| 日本大胆欧美人术艺术动态| 亚洲va久久| 国产精品天堂蜜av在线播放| 国产成人1区| 久久久久91| 免费美女久久99| 国产欧美三级| 精品亚洲a∨一区二区三区18| av日韩中文| 午夜国产精品视频| 亚洲精品亚洲人成在线观看| 国产精品羞羞答答在线观看| 日本一二区不卡| 亚洲成人精品| 日韩中文字幕1| 国产精品最新自拍| av资源中文在线| 91久久在线| 日本色综合中文字幕| 精品视频一区二区三区四区五区| 久久黄色影院| 蜜臀久久99精品久久久久宅男| 日韩影片在线观看| 欧美激情麻豆| 999国产精品永久免费视频app| 女人天堂亚洲aⅴ在线观看| 日韩高清三区| 成人在线视频免费看| 午夜影院欧美| 日本视频中文字幕一区二区三区| 精品久久久久中文字幕小说| 成人av二区| 青青草伊人久久| 久久久久91| 国产亚洲一区| 国产中文一区| 国产欧美69| 久久久久免费av| 青草国产精品久久久久久| 亚洲永久av| 日韩一区二区三免费高清在线观看| 高清久久精品| 日韩国产欧美在线播放| 91看片一区| 欧美日韩亚洲一区| japanese国产精品| 欧美成人一二区| 视频精品一区二区| 日韩一区欧美| 日本欧美大码aⅴ在线播放| 九九色在线视频| 国产精品中文字幕制服诱惑| 女人天堂亚洲aⅴ在线观看| 精品中文在线| 婷婷亚洲成人| 免费观看不卡av| 国产一区二区三区不卡视频网站| 亚洲精品少妇| 亚洲精品一二三区区别| 成人在线观看免费视频| 五月国产精品| 亚洲黄色影院| 人人草在线视频| 国产精品天堂蜜av在线播放| 在线观看亚洲精品福利片| 成人精品天堂一区二区三区| 国产美女撒尿一区二区| 亚洲女同中文字幕| а√在线中文在线新版| 欧美日韩亚洲一区三区| 免费在线看一区| 久久蜜桃资源一区二区老牛| 久久国产三级| 久久午夜影视| 激情综合亚洲| 日韩精品dvd| 麻豆精品国产91久久久久久| 日韩欧美高清一区二区三区| 亚洲一区亚洲| 欧美1区2区3区| 成人羞羞视频播放网站| 超碰超碰人人人人精品| 欧美精品国产一区| 亚洲tv在线| 亚洲三级网站| 美女尤物久久精品| 水蜜桃久久夜色精品一区的特点| 国产字幕视频一区二区| 色8久久久久| 日韩午夜一区| 亚洲精品欧美| 国产精品777777在线播放 | 久久高清一区| 亚洲午夜久久| 丝袜国产日韩另类美女| 亚洲区欧美区| 欧美视频久久| 久久影院资源站| 日本在线高清| 免费黄色成人| 亚洲精品免费观看| 国产精品日本一区二区三区在线| 精品一区二区三区中文字幕视频| 日本在线高清| 合欧美一区二区三区| 蜜臀av在线播放一区二区三区| 日韩一区中文| 成人免费一区| 黄色亚洲在线| 综合欧美亚洲| 国产精品一在线观看| 福利片在线一区二区| 久久国产小视频| 在线看片日韩| 久久三级中文| 婷婷亚洲五月色综合| 亚洲精品第一| 成人国产精选| 国产模特精品视频久久久久| 日本aⅴ亚洲精品中文乱码| 精品视频自拍| av亚洲免费| 国产日韩一区二区三区在线 | 精品欧美日韩精品| 激情丁香综合| 亚洲精品成人一区| 黄色成人精品网站| 亚洲麻豆一区| 国产剧情在线观看一区| 国产精品二区不卡| 日韩精品欧美激情一区二区| 在线一区电影| 日韩高清三区| 国产一区不卡| 国产主播一区| 先锋亚洲精品| 国产欧美日韩精品一区二区免费 | 国产精品一线| 日韩成人精品一区| 久久亚洲精品中文字幕蜜潮电影| 女主播福利一区| 日韩精选在线| 国产一区二区三区日韩精品| 99精品电影| 久久亚洲一区| 97精品国产99久久久久久免费| 精品日韩在线| 婷婷亚洲综合| 7777精品| 亚洲啊v在线| 免费精品视频| 麻豆精品在线观看| 亚洲婷婷在线| 欧美日本不卡| 在线日韩欧美| 欧美视频一区| 99久久久久国产精品| 日韩在线麻豆| 日韩免费看片| 蜜桃视频在线观看一区二区| 美女久久99| 亚洲一区国产| 国产一区二区视频在线看| 夜夜嗨一区二区| 国产精品久久| 亚洲欧美日韩高清在线| 国产精品传媒麻豆hd| 国产伊人精品| 国产精品扒开腿做爽爽爽软件| 亚洲精品一区二区在线看| 国产福利资源一区| 亚洲综合电影一区二区三区| 国产福利一区二区三区在线播放| 免费av一区| 欧美a在线观看| 美女精品在线| 久久蜜桃精品| 欧美aa在线视频| 在线日韩成人| 久久久久免费av|