オブジェクト/関数のスコープと何かの一般的な理解に問題があります。次のように、doc ready で jQuery 関数を呼び出しています。
$("#interactiveQA .actionTile").on('click',function(){
$(this).activeTiles("init");
});
次に、次のようにスクリプトを作成します。
(function($) {
var methods = {
init: function() {
var tileClicked = $(this).attr('id');
}
};
$.fn.activeTiles = function(method) {
// Method calling logic
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.slider');
}
};
})(jQuery);
これが私が探しているものです。可能な限り技術的に、現在の場所で var tileClicked = $(this)attr('id') が機能しない理由を説明していただけますか? また、別の方法やベストプラクティスなどを技術的に詳しく説明していただけますか?