以下のような他の例のjqueryコードを見ると、なぜ彼はこのような変数を作るのですか
var moreLink = $('.truncate_more_link', obj); var moreLink = $('.truncate_more_link'); で
はない理由
そして、デフォルトオブジェクトでminTrailが何をするのか混乱しましたか??
そして、彼が何を意味するかの下のこの例では、別の混乱が生じています。
var str2 = body.substring(splitLocation, body.length - 1);
適切な状態で indexof を使用したい場合の最後のこと...??
コードの完全な例:
(function($){
$.fn.truncate = function(options) {
var defaults = {
length: 300,
**minTrail: 20,**
moreText: "more",
lessText: "less",
ellipsisText: "..."
};
var options = $.extend(defaults, options);
return this.each(function() {
obj = $(this);
var body = obj.html();
if(body.length > options.length + **options.minTrail**) {
var splitLocation = body.indexOf(' ', options.length);
if(splitLocation != -1) {
// truncate tip
var splitLocation = body.indexOf(' ', options.length);
var str1 = body.substring(0, splitLocation);
**var str2 = body.substring(splitLocation, body.length - 1);**
obj.html(str1 + '<span class="truncate_ellipsis">' + options.ellipsisText +
'</span>' + '<span class="truncate_more">' + str2 + '</span>');
obj.find('.truncate_more').css("display", "none");
// insert more link
obj.append(
'<div class="clearboth">' +
'<a href="#" class="truncate_more_link">' + options.moreText + '</a>' +
'</div>'
);
// set onclick event for more/less link
**var moreLink = $('.truncate_more_link', obj);**
**var moreContent = $('.truncate_more', obj);**
**var ellipsis = $('.truncate_ellipsis', obj);**
moreLink.click(function() {
if(moreLink.text() == options.moreText) {
moreContent.show('normal');
moreLink.text(options.lessText);
ellipsis.css("display", "none");
} else {
moreContent.hide('normal');
moreLink.text(options.moreText);
ellipsis.css("display", "inline");
}
return false;
});
}
} // end if
});
};
})(jQuery);
うまくいけばあなたの答えをありがとう!!