なかじまん 様,
kenです。ご返信ありがとうございます。
On 5月11日, 午後5:21, なかじまん <
nakaji...@lrlab.to> wrote:
> こんにちは。なかじまんです。
>
> > 書き換えた先のhtml内で、jQueryが反応しません。
>
> とは、具体的に、どのようなことか、もう少し詳しく紹介して頂けないでしょうか?
>
分かりづらくて申し訳ありません。
> * .innerHTML で書き換えた内容に script タグが含まれるのでしょうか?
> * innerHTML で書き換えた内容のタグに onXxx が含まれるのでしょうか?
>
> 反応しないとは、何をした結果、どう反応しないか教えて頂ければ、何か分かるかもしれません。
>
少し長くなりますが、一通り説明致します。
まず
ガジェットXML側に
<p><a id="tostart" name="tostart">start shimasu</a></p>
と書いています。
$j("#tostart").click(function(){
$j.get("
http://example.org/index.php?
action_Index=true", { user_thumb: user_thumb, user_id: user_id },
function(obj){
//alert("Data Loaded: " + obj);
if(obj){
//$("#contents").get(0).innerHTML(obj);
//$j("#contents").html(obj);
$("contents").innerHTML = obj;
//
document.getElementById("contents").innerHTML = obj;
}
});
});
jQueryとprototypeを共存させたので、少し汚くなってますが、#tostartをクリックしたときに、
id="contents"で描かれている範囲に、getでリクエストしたhtmlを描画するようにしています。
「index.php?action_Index=true」はsmartyで出力したtplによるhtmlですが、基本的には特に何の造作もない
htmlです。
そして、ここまでは無事に動き、#contents内にリクエストしたhtmlが描かれます。ここは問題ないです。
prototypeを入れなくても、jQueryだけで十分意図した動きになります。
jQueryを使わないinnerHTMLでも、jQueryの.htmlでも、prototypeを使ったinnerHTMLでも希望の動作はできま
す。
問題なのは次ですが、
このコールバックで返されるhtmlに
<div><a id="toList" name="toList"><img src="
http://exaple.org/img/
enter.png" width="177" height="38"></a></div>
として、id="toList"で指定したaタグがあります。
そして、この#toListに対し、
$j("#toList").click(function(){
$j.get("
http://example.org/index.php?
action_List=true", { user_id: user_id },
function(obj){
alert("Data Loaded: " + obj);
if(obj){
//$j("#contents").html(obj);
$("contents").innerHTML = obj;
//
document.getElementById("contents").innerHTML = obj;
}
});
});
というスクリプトを、適用させると、.clickが反応しないのです。他のjQueryのスクリプトも適用させてみましたが、特に何も反応しませんでし
た。
この#toListに対するスクリプトは、
$j("#tostart").click(function(){
が書かれたスクリプトと同じjsに記述しており、
$(document).ready(function() {
内で実行させても、その外で実行させても、何も反応がありません。
<div><a href="#" onclick="dispP('ACTION_LIST')"><img src="http://
exaple.org/img/enter.png" width="177" height="38"></a></div>
として、disP関数を実行する場合は、外部にあるJSファイルを読んで実行してくれるようですが、jQueryに関してはどうもうまくいきません。
jQueryの問題なのか、opensocial-jqueryの問題なのか分からず申し訳ないのですが、
もしご助言ありましたら、ご教授いただけると嬉しく思います。
宜しくお願い致します。
ken