- ベストアンサー
ホームページ作成 title属性を保持したい
- 初心者の方がホームページ作成において、title属性を保持したい場合の方法について教えてください。
- 問題の空欄にカーソルを当てると答が出現し、問題をソートできるホームページを作成しています。ただし、ソートした後にポップアップの属性が消え、小さい文字になってしまいます。ソートしてもとの属性で大きな文字で表示する方法について教えてください。
- 以下のURLにあるページを参考にしましたが、問題の空欄にカーソルを当てると答が出現しない問題があります。解決方法を教えてください。 http://issangogo.sakura.ne.jp/weblib2011-1-2/narabekae10.html
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(行番号は質問文中のURLのソースのものです。) まず、title属性を持っている要素を書き換える関数について。 72行目から123行目までの無名関数全体が、 $( ) で囲われています。 この様子を3行に圧縮するとこんな感じです。 <script type="text/javascript"> $( function(){ <ここに約50行分の本体> } ); </script> これを、$() でくくるのをやめて、名前を付けます。 _71: <script type="text/javascript"> _72: function addTitleProp() { // 頭の "$(" を削って適当な名前を付ける (....関数の中身はそのまま) 123: } // 末尾の ");" を削る 124: </script> 問題文をテーブルで表示させる部分(tbodyに突っ込んでいる部分)が25行目にあるので _25: $('tbody').html(tag); _26: addTitleProp(); // ←この行を追加して関数を呼ぶ 変更点は以上です。 ※ただし、もしかすると jQuery の流儀に則るには $( ); で囲ったまま なんとかするように書くべきなのかもしれません。
その他の回答 (1)
- e_watt
- ベストアンサー率71% (25/35)
>ソートするとポップアップの属性が消えてしまい、 ソートするときに >$('tbody').html(tag); で、文字列を代入してDOMツリーを作り直しているから、 ポップアップの属性は改めて付け直す必要がありますね。 私は実はjQueryを全然知らないので以下は最適解ではないかも知れませんが… ><script type="text/javascript"> >$(function(){ >// 全要素をからTITLE属性を持っている要素だけに絞る の部分を名前付きの関数にして、draw()の中で > $('tbody').html(tag); > addTitleProp(); // ←命名した関数を毎度呼ぶ という具合に呼び出してやれば、期待に沿った動作にはなったようです。
お礼
e wattさん ご回答有難う御座います。 いろいろと試して見ましたが、素人のため、うまくいきません。 draw()を使ってもう一度記述するのだろうということはわかるのですが、 関数をすべて書き直す方法が、よくわかりません。 たとえば >><script type="text/javascript"> >>$(function(){ >>// 全要素をからTITLE属性を持っている要素だけに絞る >の部分を名前付きの関数にして、draw()の中で について、名前付きの関数にする方法がよくわかりません。 $(function(){ を $(function TitleProp(){ とすればよいのでしょうか。 また、 > $('tbody').html(tag); > addTitleProp(); // ←命名した関数を毎度呼ぶ このTitleProp が関数名と考えて良いのでしょうか。 このように考えて、いろいろなところに記述して見ましたが、うまく動作しません。 関数名の記述およびadd関数の記述場所についてアドバイスをお願いします。
お礼
e wattさん 本当にありがとうございました。 見事に希望していた通りの動きを実現できました。 わかりやすく教えていただき、感謝しています。 これを使って自分のページを充実させていこうと思います。