複数の関数でjquery noconflict設定を実行している限り、いくつかの競合が発生しているため、テストしている関数の1つに対してnoconflictをテストして問題を切り分けることにしました。
s$ を配置する場所について複数のバリエーションを試しましたが、どの構成も機能していないようです。この作業を行う唯一の方法は、変数を -> var $ のままにして、すべての従属変数をこの設定にすることですが、一意の変数を使用してこれを機能させる方法を見つける必要がありますか?
おそらく私の構文にも問題がありますか?
var s$ = jQuery.noConflict();
s$.fn.emailSpamProtection = function(className) {
return s$(this).find("." + className).each(function() {
var $email = s$(this);
var address = $email.text()
.replace(/\s*\[at\]\s*/, '@')
.replace(/\s*\[dot\]\s*/g, '.');
$email.html('<a href="mailto:' + address + '">'+ address +'</a>');
});
};
これが私が試した修正されたスクリプトです。
jQuery.noConflict();
(function($){
$.fn.emailSpamProtection = function(className) {
return this.find("." + className).each(function() {
var $email = this;
var address = $email.text()
.replace(/\s*\[at\]\s*/, '@')
.replace(/\s*\[dot\]\s*/g, '.');
$email.html('<a href="mailto:' + address + '">'+ address +'</a>');
});
};
})(jQuery);
そして、これを .html ホームページに配置しました
jQuery(function($){
//Note, you can use $(...) because you are wrapping everything within a jQuery function
$("body").emailSpamProtection("email");
});