<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>INSPIRE TECH &#187; jQuery</title>
	<atom:link href="http://inspire-tech.jp/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://inspire-tech.jp</link>
	<description>株式会社インスパイアデザインのプログラマーである家富正幸が、デザインやシステム開発、ソーシャルメディアや最近のトレンドなど、Webに関する様々な情報を発信しているブログです。</description>
	<lastBuildDate>Fri, 29 Jan 2016 05:25:58 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>WordPressでjQueryのプラグインが正しく動作しない場合の対処法</title>
		<link>http://inspire-tech.jp/2012/06/dont-work-jquery-plugins-in-the-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dont-work-jquery-plugins-in-the-wordpress</link>
		<comments>http://inspire-tech.jp/2012/06/dont-work-jquery-plugins-in-the-wordpress/#comments</comments>
		<pubDate>Sun, 24 Jun 2012 08:04:25 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1296</guid>
		<description><![CDATA[WordPressのテーマで、jQueryを利用したプラグインを組み込んでいるのにもかかわらず、エラーが発生して利用出来ないことがあります。 原因 これはテーマ側で wp_enquere_script() 関数を用いて、 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressのテーマで、jQueryを利用したプラグインを組み込んでいるのにもかかわらず、エラーが発生して利用出来ないことがあります。</p>
<h3><span>原因</span></h3>
<p>これはテーマ側で <code>wp_enquere_script()</code> 関数を用いて、WordPress本体に附属するjQueryを利用している場合によく発生する問題です。</p>
<pre class="brush: php">
/* WordPress附属のjQueryを、wp_head() 内で読み込む */
wp_enqueue_script('jquery');
</pre>
<p>WordPressの <code>wp_enqueue_script()</code> 関数を用いてjQueryを読み込んだ場合、通常利用できるはずのjQueryのインスタンスである$変数が利用できません。</p>
<p>これは、WordPress附属のjQueryでは他のライブラリとの競合を防ぐために <code>jQuery.noConflict()</code> を自動的に実行させているため、$変数が設定されないのが原因です。</p>
<h3><span>対処</span></h3>
<p>テーマ側で独自にjQueryを用意して読み込んだり設置してもかまわないのですが、プラグインなどで <code>wp_enqueue_script('jquery')</code> でjQueryを呼び出されてしまうと、既にテーマ附属のjQueryが読み込まれているのにもかかわらず、WordPressに附属しているjQueryも読み込まれてしまいます。</p>
<p>そのため、<strong>scriptタグの記述される順番によっては、WordPress附属のjQueryが優先され、<code>jQuery.noConflict()</code> 関数が実行されてしまうために$変数が使えなくなる事もあります</strong>。</p>
<p>そのため、いかなる場合にも正常に動作させられるようにするには、jQueryを利用するコードを工夫する必要があります。</p>
<h3><span>問題の起きないコード</span></h3>
<p>下記のように、jQueryのインスタンスを$変数として利用できるスコープを作り、その内部にjQueryを利用したコードを書きましょう。</p>
<pre class="brush: js">
(function($) {
    /* いつも通りのjQueryを利用したコードを書く */
    $(function() {
        /* 初期化コードなど */
    });
})(jQuery);
</pre>
<p>こうすることで、WordPressに附属するjQueryが利用された場合でも問題無く$変数を使ったコードを実行することができますし、他のフレームワークとのバッティングも起きません。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/06/dont-work-jquery-plugins-in-the-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitterからのトラックバックを簡単に設置できるjQueryプラグインをさらに改造してページネーションにも対応してみた</title>
		<link>http://inspire-tech.jp/2011/08/jquery_customized_twitter_trackback_plugin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jquery_customized_twitter_trackback_plugin</link>
		<comments>http://inspire-tech.jp/2011/08/jquery_customized_twitter_trackback_plugin/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 01:10:23 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1148</guid>
		<description><![CDATA[以前に作成した、特定のURLへのTwitterの投稿を一覧で取得できるjQueryプラグインを、さらに改造してみました。 前回のプラグインではツイートが多くなっても、100件までは全て取得して表示するような仕組みになって [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>以前に作成した、<a href="http://inspire-tech.jp/2011/06/twitter_trackbac/" title="Twitterからのトラックバックを簡単に設置できるjQueryプラグインを改造してみた">特定のURLへのTwitterの投稿を一覧で取得できるjQueryプラグイン</a>を、さらに改造してみました。</p>
<p>前回のプラグインではツイートが多くなっても、100件までは全て取得して表示するような仕組みになっていたため、そのまま表示してしまうとページが縦に異常に長くなる現象が発生していました。</p>
<p>そこで、今回の改造で<strong>1ページに表示する件数を指定可能にし、さらにページネーションの仕組みを取り付けてみました</strong>。</p>
<div class="component img"><img src="http://inspire-tech.jp/wp-content/uploads/2011/08/twitter-trackback-list.png" alt="" title="twitter-trackback-list" width="449" height="586" class="alignnone size-full wp-image-1164" /></div>
<p><span id="more-1148"></span></p>
<h3><span>ソースコード</span></h3>
<p><script src="https://gist.github.com/1119248.js?file=jquery.twitterTrackback.custom.js"></script></p>
<h3><span>利用方法</span></h3>
<p>ツイートの一覧を表示したいDOMオブジェクトを用意し、下記のように利用します。</p>
<pre class="brush: js">$('#tweets').twitterTrackback();</pre>
<h3><span>オプション</span></h3>
<p>下記のように、<code>twitterTrackback</code>メソッドにオブジェクトを渡すことで、動作オプションを指定できます。</p>
<pre class="brush: js">$('#tweets').twitterTrackback({ exclude: [ 'jyokyoku' ], renderCallback: renderTweets });</pre>
<h4>オプションの一覧</h4>
<dl>
<dt>url (string)</dt>
<dd>ツイートを取得したいURLを指定します。デフォルトでは、スクリプトを設置したURLが利用されます。</dd>
<dt>wrapperTag (string)</dt>
<dd>ツイートの一覧を囲むタグを指定します。デフォルトでは<code>ul</code>です。</dd>
<dt>removeHash (boolean)</dt>
<dd>ツイートを取得するurlにハッシュが含まれる場合に、それを削除するかを指定します。デフォルトでは<code>true</code>です。</dd>
<dt>renderCallback (function)</dt>
<dd>ツイートをレンダリングする関数を指定します。</dd>
<dt>pagerCallback (function)</dt>
<dd>ページャをレンダリングする関数を指定します。</dd>
<dt>pagerPos (string)</dt>
<dd>ページャを表示する位置を指定します。</p>
<ul>
<li><code>both</code> &#8211; ツイート一覧の上下</li>
<li><code>top</code> &#8211; ツイート一覧の上</li>
<li><code>bottom</code> &#8211; ツイート一覧の下</li>
</ul>
</dd>
<dt>perpage (integer)</dt>
<dd>1ページに表示するツイートの数を指定します。デフォルトでは<code>10</code>です。</dd>
<dt>noTrackback (string)</dt>
<dd>ツイートが1件も無い場合に表示するメッセージを指定します。デフォルトでは<code>&lt;p&gt;Twitterからのトラックバックはありません。&lt;/p&gt;</code>が表示されます。</dd>
<dt>exclude (array)</dt>
<dd>ツイートを表示したくないユーザーIDを配列で指定します。</dd>
</dl>
<h3><span>生成されるHTMLコード</span></h3>
<p>renderCallbackオプションやpagerCallbackオプションに何も指定しない場合、下記のようなHTMLコードが生成されます。</p>
<p>適宜CSSを利用してスタイリングしてください。</p>
<h4>ツイート一覧</h4>
<pre class="brush: xml">
&lt;ul&gt;
	&lt;li class=&quot;tweet1&quot;&gt;
		&lt;a href=&quot;http://twitter.com/jyokyoku&quot;&gt;&lt;img src=&quot;http://a1.twimg.com/profile_images/1302945019/___normal.jpg&quot; alt=&quot;家富正幸&quot; width=&quot;48&quot; /&gt;&lt;/a&gt;
		&lt;ul class=&quot;section&quot;&gt;
			&lt;li class=&quot;nick&quot;&gt;&lt;a href=&quot;http://twitter.com/jyokyoku&quot;&gt;家富正幸&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;content&quot;&gt;ツイートの内容が表示されます。&lt;/li&gt;
			&lt;li class=&quot;date&quot;&gt;&lt;a href=&quot;http://twitter.com/jyokyoku/status/xxxxxxxxxx&quot;&gt;1 days ago&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li class=&quot;tweet2&quot;&gt;
		&lt;a href=&quot;http://twitter.com/jyokyoku&quot;&gt;&lt;img src=&quot;http://a1.twimg.com/profile_images/1302945019/___normal.jpg&quot; alt=&quot;家富正幸&quot; width=&quot;48&quot; /&gt;&lt;/a&gt;
		&lt;ul class=&quot;section&quot;&gt;
			&lt;li class=&quot;nick&quot;&gt;&lt;a href=&quot;http://twitter.com/jyokyoku&quot;&gt;家富正幸&lt;/a&gt;&lt;/li&gt;
			&lt;li class=&quot;content&quot;&gt;ツイートの内容が表示されます。&lt;/li&gt;
			&lt;li class=&quot;date&quot;&gt;&lt;a href=&quot;http://twitter.com/jyokyoku/status/xxxxxxxxxx&quot;&gt;1 days ago&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</pre>
<h4>ページャ</h4>
<pre class="brush: xml">
&lt;div class=&quot;tweetPager&quot;&gt;
	&lt;span class=&quot;current&quot;&gt;1&lt;/span&gt;
	&lt;span&gt;&lt;a href=&quot;javascript:void();&quot; onclick=&quot;jQuery.twitterTrackback.update(2); return false;&quot;&gt;2&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;
</pre>
<h3><span>コールバック関数を利用する</span></h3>
<p><code>renderCallback</code>オプションや<code>pagerCallback</code>オプションに適切な関数を渡すことで、表示されるツイートの内容やページャのコードを変更する事ができます。</p>
<h4>renderCallbackオプションを指定する</h4>
<p><code>renderCallback</code>オプションを指定する場合、引数を1つ取る関数を指定してください。<br />
引数にはツイートの番号が数値で渡されます。</p>
<p>また、関数の<code>this</code>スコープはツイートの情報が格納されたオブジェクトになるため、<code>this.author.name</code>などでツイートに関する情報を表示することができます。</p>
<p>デフォルトで実行される関数を載せておきます。</p>
<pre class="brush: js">
function renderHtml(n) {
	return (
		'&lt;li class=&quot;tweet' + n + '&quot;&gt;' +
			'&lt;a href=&quot;' + this.author.url + '&quot;&gt;&lt;img src=&quot;' + this.author.photo_url + '&quot; alt=&quot;' + this.author.name + '&quot; width=&quot;48&quot; /&gt;&lt;/a&gt;' +
			'&lt;ul class=&quot;section&quot;&gt;' +
				'&lt;li class=&quot;nick&quot;&gt;&lt;a href=&quot;' + this.author.url + '&quot;&gt;' + this.author.nick + '&lt;/a&gt;&lt;/li&gt;' +
				'&lt;li class=&quot;content&quot;&gt;' + this.content.replace(/((http:|https:)\/\/[\x21-\x7e]+)/gi, &quot;&lt;a href='$1'&gt;$1&lt;/a&gt;&quot;) + '&lt;/li&gt;' +
				'&lt;li class=&quot;date&quot;&gt;&lt;a href=&quot;' + this.permalink_url + '&quot;&gt;' + this.date_alpha + '&lt;/a&gt;&lt;/li&gt;' +
			'&lt;/ul&gt;' +
		'&lt;/li&gt;'
	);
}
</pre>
<h4>pagerCallbackオプションを指定する</h4>
<p><code>pagerCallback</code>オプションを指定する場合、引数を3つ取る関数を指定してください。<br />
引数は下記の値が渡されます。</p>
<ol>
<li>(integer) 現在のページ番号</li>
<li>(integer) 1ページにいくつツイートを表示するか</li>
<li>(integer) 現在のURLに対する全ツイート数</li>
</ol>
<p>また、ページャで生成されたリンクがクリックされた場合には、必ず下記の関数を実行して、ツイート一覧を書き換えるようにしてください。</p>
<pre class="brush: js">jQuery.twitterTrackback.update(pageNumber)</pre>
<p>デフォルトで実行される関数を載せておきます。</p>
<pre class="brush: js">
function pagerHtml(current, perpage, total) {
	var totalPages = total / perpage;
	var links = '';

	for (var i = 1; i &lt; totalPages; i++) {
		if (current != i) {
			links += '&lt;span&gt;&lt;a href=&quot;javascript:void();&quot; onclick=&quot;jQuery.twitterTrackback.update(' + i + '); return false;&quot;&gt;' + i + '&lt;/a&gt;&lt;/span&gt;';

		} else {
			links += '&lt;span class=&quot;current&quot;&gt;' + i + '&lt;/span&gt;'
		}
	}

	return (
		'&lt;div class=&quot;tweetPager&quot;&gt;' + links + '&lt;/div&gt;'
	);
}
</pre>
<h3><span>バグやご要望など</span></h3>
<p>バグやご要望などありましたら、<a href="http://twitter.com/jyokyoku" title="ツイッター">ツイッター</a>かコメントフォーム、<a href="http://www.facebook.com/pages/INSPIRE-TECH/217383898302804" title="INSPIRE TECH">Facebook</a>、または<a href="http://inspire-tech.jp/contact/" title="お問い合わせ">お問い合わせフォーム</a>からご連絡ください。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2011/08/jquery_customized_twitter_trackback_plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitterからのトラックバックを簡単に設置できるjQueryプラグインを改造してみた</title>
		<link>http://inspire-tech.jp/2011/06/twitter_trackbac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=twitter_trackbac</link>
		<comments>http://inspire-tech.jp/2011/06/twitter_trackbac/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 15:21:12 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=342</guid>
		<description><![CDATA[本プラグインにさらに手を加えたものを公開しています。Twitterからのトラックバックを簡単に設置できるjQueryプラグインをさらに改造してページネーションにも対応してみた（2011.08.02） 「@soraiyのj [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><ins>本プラグインにさらに手を加えたものを公開しています。<a href="http://inspire-tech.jp/2011/08/jquery_customized_twitter_trackback_plugin/" title="Twitterからのトラックバックを簡単に設置できるjQueryプラグインをさらに改造してページネーションにも対応してみた">Twitterからのトラックバックを簡単に設置できるjQueryプラグインをさらに改造してページネーションにも対応してみた</a>（2011.08.02）</ins></p>
<p>「<a href="http://2inc.org/blog/blog/692/">@soraiyのjquery.twitterTrackback.jsを改良してみた。</a>」で公開されているTwitterからのツイートを表示するjQueryプラグインに、さらに手を加えたものを作ったので、ここにおいておきます。</p>
<h3><span>URLを自動取得に</span></h3>
<p>元のスクリプトでは実行時にURLを指定しなくてはいけませんでしたが、これを <code>location.half</code> の値を使って自動取得に変更しました。</p>
<p>下記のように、オプションさえ指定しなければ引数無しで記述可能です。</p>
<pre class="brush: js">
$('#twitterTrackback').twitterTrackbackList();
</pre>
<p><code>removeHash</code> オプションを指定することで、URLに含まれるハッシュを削除することができます。これは、ページ内リンクなどでURLにハッシュが含まれる場合、正しくツイートが取得できない問題を回避するためです。</p>
<pre class="brush: js">
$('#twitterTrackback').twitterTrackbackList({
    removeHash: true // デフォルトでtrue
});
</pre>
<h3><span>レンダリング用のコールバック関数を指定できる</span></h3>
<p><code>callback</code> オプションにコールバック関数を指定することで、自由にHTMLを生成できるようにしました。<br />
このサイトでは下記のような関数を使ってレンダリングしています。</p>
<pre class="brush: js">
$('#twitterTrackback').twitterTrackbackList({ callback: renderTweets });

function renderTweets(n) {
	return (
		'&lt;li class=&quot;tweet' + n + '&quot;&gt;&lt;dl&gt;' +
		'&lt;dt&gt;&lt;a href=&quot;' + this.author.url + '&quot;&gt;' + this.author.nick + '&lt;/a&gt;&lt;/dt&gt;' +
		'&lt;dd class=&quot;date&quot;&gt;&lt;a href=&quot;' + this.permalink_url + '&quot;&gt;' + this.date_alpha + '&lt;/a&gt;&lt;/dd&gt;' +
		'&lt;dd class=&quot;image&quot;&gt;&lt;a href=&quot;' + this.author.url + '&quot;&gt;&lt;img src=&quot;' + this.author.photo_url + '&quot; alt=&quot;' + this.author.name + '&quot; width=&quot;48&quot; /&gt;&lt;/a&gt;&lt;/dd&gt;' +
		'&lt;dd class=&quot;content&quot;&gt;' + this.content.replace(/((http:|https:)\/\/[\x21-\x7e]+)/gi, &quot;&lt;a href='$1'&gt;$1&lt;/a&gt;&quot;) + '&lt;/dd&gt;' +
		'&lt;/dl&gt;&lt;/li&gt;'
	);
}
</pre>
<p>コールバック関数の <code>this</code> スコープにはツイートの情報が入っていますので、HTMLと組み合わせて自由にデザインが可能です。</p>
<h3><span>除外するユーザーを設定可能に</span></h3>
<p><code>exclude</code> オプションに除外したいユーザー名を配列で指定することで、そのユーザーからのツイートを非表示にします。<br />
自分のツイートを非表示にする場合なんかに利用できます。</p>
<pre class="brush: js">
$('#twitterTrackback').twitterTrackbackList({ exclude: [ 'jyokyoku' ] });
</pre>
<h3><span>ソースコード</span></h3>
<p><a href="http://inspire-tech.jp/wp-content/uploads/2011/06/jquery.twitterTrackback.custom.js">こちらのリンク</a>からダウンロードするか、下記ソースコードを保存して利用して下さい。</p>
<p>動作確認は下記環境で行っています。</p>
<ul>
<li>InternetExplorer7</li>
<li>Firefox4</li>
<li>Opera10</li>
</ul>
<pre class="brush: js">
(function($) {
	jQuery.fn.twitterTrackbackList = function(options){
		var topsyOtterapi = 'http://otter.topsy.com/trackbacks.js';
		var self = this;
		var tweetHtml = '';

		function renderHtml(n) {
			return (
				'&lt;li class=&quot;tweet' + n + '&quot;&gt;' +
					'&lt;a href=&quot;' + this.author.url + '&quot;&gt;&lt;img src=&quot;' + this.author.photo_url + '&quot; alt=&quot;' + this.author.name + '&quot; width=&quot;48&quot; /&gt;&lt;/a&gt;' +
					'&lt;ul class=&quot;section&quot;&gt;' +
						'&lt;li class=&quot;nick&quot;&gt;&lt;a href=&quot;' + this.author.url + '&quot;&gt;' + this.author.nick + '&lt;/a&gt;&lt;/li&gt;' +
						'&lt;li class=&quot;content&quot;&gt;' + this.content.replace(/((http:|https:)\/\/[\x21-\x7e]+)/gi, &quot;&lt;a href='$1'&gt;$1&lt;/a&gt;&quot;) + '&lt;/li&gt;' +
						'&lt;li class=&quot;date&quot;&gt;&lt;a href=&quot;' + this.permalink_url + '&quot;&gt;' + this.date_alpha + '&lt;/a&gt;&lt;/li&gt;' +
					'&lt;/ul&gt;' +
				'&lt;/li&gt;'
			);
		}

		options = $.extend({
			url: window.location.href,
			wrapperTag: 'ul',
			removeHash: true,
			callback: renderHtml,
			noTrackback: '&lt;p&gt;Twitterからのトラックバックはありません。&lt;/p&gt;',
			exclude: []
		}, options);

		if (options.removeHash) {
			options.url = options.url.replace(/#.+/, '');
		}

		jQuery.ajax({
			type: 'GET',
			url: topsyOtterapi,
			cache: false,
			dataType: 'jsonp',
			data: {
				perpage: '100',
				order: 'date',
				url: options.url
			},
			success: function(trackbackData) {
				if(trackbackData.response.list.length == 0) {
					tweetHtml += options.noTrackback;

				} else {
					jQuery.each(trackbackData.response.list, function(n) {
						for (var i = 0; i &lt; options.exclude.length; i++) {
							if (options.exclude[i] != this.author.nick) {
								tweetHtml += options.callback.call(this, n);
							}
						}
					});

					if (!tweetHtml) {
						tweetHtml = options.noTrackback;

					} else if (options.wrapperTag) {
						tweetHtml = '&lt;' + options.wrapperTag + '&gt;' + tweetHtml + '&lt;/' + options.wrapperTag + '&gt;';
					}
				}
				jQuery(self).append(tweetHtml);
			},
			complete: function() {}
		});
	};
})(jQuery);
</pre>
<p>不具合等があれば、コメントかツイッターで報告下さると有り難いです。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2011/06/twitter_trackbac/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
	</channel>
</rss>
