【誰か】jQueryのここがわからない【助けて】at TECH
【誰か】jQueryのここがわからない【助けて】 - 暇つぶし2ch361:デフォルトの名無しさん
10/11/18 09:36:55
こっちの勉強不足かもしらんが、JSONに見える

そうでない点を教えてくれるとありがたい

362:デフォルトの名無しさん
10/11/18 09:49:06
形式としては JSON ということで間違いないけど
jQuery が期待している JSON ではないということだ

363:デフォルトの名無しさん
10/11/18 09:52:07
>>361
>>353はあきらかにJSONじゃない

こっちが正しいJSON
{
"page": 1,
"total": 5,
"row": [
{"id":"1","cell":["1","normal","テスト1","2009/07/07 15:32:27"]},
{"id":"2","cell":["2","sad","テスト2","2009/07/06 21:04:30"]},
{"id":"3","cell":["3","smile","テスト3","2009/07/06 13:18:29"]},
{"id":"4","cell":["4","smile","テスト4","2009/07/05 19:46:41"]},
{"id":"5","cell":["5","sad","テスト5","2009/07/05 15:25:15"]}
]
}

364:デフォルトの名無しさん
10/11/26 17:03:56
:contains(text)に近いフィルタで、
正規表現にマッチするのを含むフィルタはありますでしょうか?

365:デフォルトの名無しさん
10/11/27 01:48:51
jquery.ajaxでの質問なのですが、非同期通信のためか、例えば以下のようなコードだと
通信が終わる前に次の関数(makeData)が呼び出されてしまいます。

通信完了を待って次の関数に移るためには同期通信にするしかないのでしょうか。
というのも、同期通信(asyncをfalseにする)と通信中は画面がフリーズしたかのようになってしまうため、
できれば非同期通信にしたいというのが希望です。

function test(){
getData();
makeData();
}

function getData(){
jQuery.ajax({
  (略)
});
}

function makeData(){
//通信が終わる前にこっちが呼び出される
}

366:デフォルトの名無しさん
10/11/27 03:35:04
コールバックかメソッドチェーンすればよいのでは?

367:デフォルトの名無しさん
10/11/27 13:12:38
makeData(); を
jQuery.ajax({
  (略)
ここに通信完了後の処理を書く場所がある
});
の中に書く

368:デフォルトの名無しさん
10/11/28 02:40:07
はじめまして。ご教示願いたいです。
appendを使ってHTMLにタグを挿入した後に、findを使うとappendで生成されたタグが検索対象に含まれません。
どの様にすればappendしたタグをfindの検索対象に含める事ができますかね。
よろしくお願い致します。

369:デフォルトの名無しさん
10/11/28 07:09:48
append

370:デフォルトの名無しさん
10/11/28 07:12:19
appendを使おうが何を使おうが関係なく後から作成された要素だからといってfndで検索できないことはありません。
動かないコードをさらせば?

371:デフォルトの名無しさん
10/11/28 17:50:44
iframeを使った時の挙動がいまいち解らないので質問させてください
以下のようなソースを用いて、iframe内のイベントをtopで制御したいと思って書いていたのですが、hogeが呼ばれません。
何故なのでしょうか
ヒント、参考資料などがあれば是非教えていただきたいです。

/a.html
  <script type="text/javascript" src="/lib/js/jquery-1.4.2.min.js" charset="UTF-8"></script>
  <script type="text/javascript" src="b.js" charset="UTF-8"></script>
  <iframe id="mainframe" width=100% height=100% src="/frame/c.html"></iframe>';

b.js
  $("#mainframe").ready(function ()){
    $("#mainframe").contents().live("click",hoge);
  }
  function hoge(e){}

/frame/c.html
  <script type="text/javascript" src="/lib/js/jquery-1.4.2.min.js" charset="UTF-8"></script>
  <script type="text/javascript" src="/frame/d.js" charset="UTF-8"></script>



372:デフォルトの名無しさん
10/11/28 22:42:21
jqueryってパフォーマンス悪い?


373:デフォルトの名無しさん
10/11/29 03:43:22
もともとパフォーマンスを考えたものではないだろう
とはいっても、そんなに悪くはない
悪いのはだいたい使い方の方だ

374:デフォルトの名無しさん
10/12/05 16:46:08
2種類のクラス、例えばabcとdefの両方を持つ要素の選択は
下記方法が考えられますが、それよりシンプルな書き方はありますでしょうか?
$('[class*=abc][class*=def]')

375:デフォルトの名無しさん
10/12/05 21:18:33
>>374
なぜそんな面倒くさいセレクタを使うんだ…
$('.abc.def')

376:デフォルトの名無しさん
10/12/05 21:36:26
>>375
だって、リファレンスで見つけられなかったんだもん

377:デフォルトの名無しさん
10/12/05 23:05:25
IE9で動くの?


378:デフォルトの名無しさん
10/12/05 23:33:24
IE6以上から動きます。

2001年という10年前のブラウザでも
JQueryがまともに動くのだからすごいとしか
言いようがありません。

379:デフォルトの名無しさん
10/12/05 23:37:41
IE6ってSP5くらいまで逝ってたんだっけ?

380:デフォルトの名無しさん
10/12/06 00:37:09
>>376
どこを見ているのか知らないが、クラスセレクタの項に書いてある
URLリンク(hp.vector.co.jp)

381:デフォルトの名無しさん
10/12/06 06:32:26
>>380
なるほど、jQueryでなく、スタイルシートの仕様に絡んでいるんですね。
参考になります。

382:デフォルトの名無しさん
10/12/07 07:06:09
>>381
> Borrowing from CSS 1-3, and then adding its own, jQuery offers a powerful set of tools for matching a set of elements in a document.
URLリンク(api.jquery.com)

383:デフォルトの名無しさん
10/12/07 07:08:45
リファレンスのサンプルにもあるなw
URLリンク(api.jquery.com)

384:デフォルトの名無しさん
10/12/12 01:49:53
jQueryで追加したHTML要素を、すべて元に戻すAPIってないですか。
1つずつ.remove()で消す、追加するHTMLに共通のclassをつけておいて.remove()、ってのが面倒で…。

385:デフォルトの名無しさん
10/12/12 03:14:21
reload

386:デフォルトの名無しさん
10/12/12 10:13:10
元々ある全ての要素にdeaultってclass付けておいて:notでremove()

387:デフォルトの名無しさん
10/12/12 12:47:27
>>384
自分でAPIを拡張するのが手っ取り早い。
DOMノードを挿入するAPIを拡張して、挿入したノードを配列に格納しておけばいいだろう。

388:デフォルトの名無しさん
10/12/13 23:18:59
$(document).ready(function() { ... }

が二回呼ばれているようなのだけど
jQueryでタグ追加とかしてもそんな挙動するわけないですよね

389:デフォルトの名無しさん
10/12/13 23:39:49
タグ追加の意味がわからんが
readyを何回書いても一回しか実行されないのは確かだ

390:デフォルトの名無しさん
10/12/14 13:26:06
document が2つあるとか

391:デフォルトの名無しさん
10/12/15 04:43:08
jquery-opacity-rollover.js
というプラグインを使っています
既存のhttpページで問題なく使えていたものが
httpsのページではエラーを吐いてしまいます

エラー内容は
})(jQuery);
となっている最終行で'jQuery'が未定義と言われます
他の読み込んでいるjsは全て消してみましたが解消せず

調べるとjQueryと$がエイリアスになっているらしいのですが
具体的に何のエイリアスになっているのでしょうか?
エイリアス元と置き換えたらエラー止まる…でしょうか?

392:デフォルトの名無しさん
10/12/15 06:53:51
$がjQueryのエイリアスなんじゃないの

393:デフォルトの名無しさん
10/12/15 07:46:20
>>391
googleのapi使ってjQuery呼んでないか?
ひょっとして。

394:デフォルトの名無しさん
10/12/15 10:53:10
>>391
> 既存のhttpページで問題なく使えていたものが
> httpsのページではエラーを吐いてしまいます

わかってるじゃん
関連ワードでググッてみれば

395:391
10/12/15 13:50:10
>>392
あ、そうなんですかー
となると最終行の})(jQuery); はjQueryって文字列を無名関数の引数にしてる?
わからん;;

>>393
確認しましたが自サーバにあげてあるjQuey呼んでいたので該当しなさそうです

>>394
https+jquery、SSL+jqueryでぐぐってみましたが…
関連ワードの選定がおかしい?

396:デフォルトの名無しさん
10/12/15 14:53:50
>他の読み込んでいるjsは全て消してみましたが解消せず

そりゃ消したら動く訳ないな

397:デフォルトの名無しさん
10/12/15 16:21:30
jquery-1.x.x.js も削除しているとか。

398:デフォルトの名無しさん
10/12/15 21:35:40
【C#, C♯, C#】 MonoMac 【MonoDevelop】
スレリンク(mac板)

詳しい奴、ちょっと↑きてくれ

399:デフォルトの名無しさん
10/12/16 01:31:33
>>391
httpのページではjQueryを読み込むscriptたぐあるけどhttpsのページではないってオチじゃないの?
jquery-opacity-rollover.jsの前にちゃんと読み込んでんの?

400:デフォルトの名無しさん
10/12/19 18:15:38
助けて誰か、誰か助けて
もうわけわからない、ぐぐってコピペしても動かない
もうだめだだめだだめだだめだ
ふぅ


scriptのsrcを入れ替えたいけれど、どう書けばいいのかわからんのです
誰か助けて
【javascript】
※.は2chの先頭半角除去回避
.<script>
.var videoId = 'sm1544885'
.var obj = $.get('URLリンク(ext.nicovideo.jp)' + videoId,null,function(data, stat)
.{
. $(function()
. {
. $('#title').html($('title', data).text())
. $('#player script').attr("src","aaaaa")
. })
.}, "xml");
.</script>

【html】
<div id="title"></div>
<div id="player"><script type="text/javascript" src="URLリンク(ext.nicovideo.jp)"></script></div>

401:デフォルトの名無しさん
10/12/19 18:16:32
先頭除去回避できなかった
死にたい

402:デフォルトの名無しさん
10/12/21 13:34:42
JSONファイルが複数あってそれぞれに時系列のデータなのですが

data01.json(ファイルの中身は2008年、2009年、2010年の果物の仕入れ推移)
data02.json(ファイルの中身は2008年、2009年、2010年の牛肉の仕入れ推移)
data03.json(ファイルの中身は2008年、2009年、2010年のパンの仕入れ推移)

たとえばどれかひとつのJSONファイルを読み込んでhtmlテーブルに書き出す、ことはできています。
($.getJSON() → $.each() で回してappend という処理をしています)


ここで質問ですが、これら複数のJSONファイルをマッシュ?して
ひとつのhtmlに書き出す、にはどうすればよいでしょうか?

ページ読み込み時→2008年、2009年、2010年の果物、牛肉、パンすべての仕入れ一覧テーブルを一括で表示

「果物」「牛肉」「パン」アンカーリンクのクリックで
果物のみ、牛肉のみ、パンのみのテーブル表示

「2008年」「2009年」「2010年」アンカーリンクのクリックで
その年だけのテーブル表示

よろしくお願いします。

403:デフォルトの名無しさん
10/12/21 14:09:05
>>402
appendしてhtmlに書き出してるのならそれをJSONファイル分やれば全部書かれると思うけど
それだとダメなの?

404:デフォルトの名無しさん
10/12/21 14:31:27
前半に書きましたが、それはできています。



405:デフォルトの名無しさん
10/12/21 14:34:47
ここで質問ですが、これら複数のJSONファイルをマッシュ?して
ひとつのhtmlに書き出す、にはどうすればよいでしょうか?

ひとつのテーブルに書き出す、です。説明が不足しており申し訳ありません。



406:デフォルトの名無しさん
10/12/21 15:22:03
実際のコード晒してみてくれないとイメージが付かないな。
普通にtbodyにappendしていけば一つのテーブルに書き出せると思うんだけど。

407:デフォルトの名無しさん
10/12/21 15:30:34
次スレweb板でよくね?

408:デフォルトの名無しさん
10/12/21 16:33:12
($.getJSON() → $.each() で回してappend という処理をしています)
このappend先を1つのtbody若しくはtbody毎に区切ってappendしていけばOKな話じゃないのか

409:402
10/12/21 18:12:52
>402 です。お世話になっております。

それぞれのJSONファイルは以下の情報が時系列で含まれています。(項目数は省略しています)

>data01.json(ファイルの中身は2008年、2009年、2010年の果物の仕入れ推移)

{
"title": "果物",
"items":[
{"year" : "2008","exifvolume" : [{"mon" : "3月","volume" : "224個"},{"mon" : "4月","volume" : "281個"}]},
{"year" : "2009","exifvolume" : [{"mon" : "2月", "volume" : "326個"},{"mon" : "7月", "volume" : "221個"}]}
]
}

これと同じ書式で、牛肉JSONファイル、パンJSONファイルが存在します。(続きます)

410:402
10/12/21 18:14:13
(JSONファイルは本当は改行して見やすい記述なのですが、改行が多すぎるという理由で書き込めなくてすみません)



411:402
10/12/21 18:20:19
それらのJSON 3ファイルの時系列を有効にしたままで、下記のような一括テーブルを生成したいというイメージです。

(これも改行が多すぎて駄目だそうなので詰めています。)
<table>
<!-- 2008年 -->
<tr><td colspan=3>2008</td></tr>
<tr><td rowspan=2>3月</td><td>果物</td><td>296個</td></tr><tr><td>牛肉</td><td>1120g</td></tr>
<tr><td rowspan=3>4月</td><td>果物</td><td>224個</td></tr><tr><td>牛肉</td><td>1320g</td></tr><tr><td>パン</td><td>551個</td></tr>
<tr><td rowspan=2>8月</td><td>果物</td><td>224個</td></tr><tr><td>パン</td><td>551個</td></tr>
<!-- 2009年 -->
<tr><td colspan=3>2009</td></tr>
<tr><td rowspan=3>2月</td><td>果物</td><td>328個</td></tr><tr><td>牛肉</td><td>1122g</td></tr><tr><td>パン</td><td>466個</td></tr>
<tr><td rowspan=2>7月</td><td>果物</td><td>529個</td></tr><tr><td>パン</td><td>216個</td></tr>
<!-- 2010年 -->
<tr><td colspan=3>2010</td></tr>
<tr><td rowspan=3>4月</td><td>果物</td><td>523個</td></tr><tr><td>牛肉</td><td>1626g</td></tr><tr><td>パン</td><td>562個</td></tr>
<tr><td rowspan=2>6月</td><td>牛肉</td><td>1176g</td></tr><tr><td>パン</td><td>363個</td></tr>
</table>


伝わりますでしょうか、、、

412:デフォルトの名無しさん
10/12/21 19:01:58
時系列の話ならjQueryっていうよりどうやってソートするかのアルゴリズムの話だなぁ
とか思いながら眺めてみたらテーブルの構造が思った以上に複雑で笑った

それ、自分の感覚だとテーブルの作り方が直感的じゃないんだけど、1つのテーブルの場合はどういう作り方してんの?
yearでtr作って、その後配列の要素分だけtr作るとか?
そういう作り方なら同じようにmonを見て、既に同じ月があればrowspanに+1とtrを追加で地道にやったらいいんじゃないかね
それかJSONを3つ取った時点で一旦マージしてから作るかかな

413:デフォルトの名無しさん
10/12/21 19:10:10
それならJSONデータをマージして1個の大きなデータ作ってから
表示させるのが一番楽じゃないかなぁ
tr追加時にクラスに果物か牛肉かパンの情報与えておけば後で弄りやすいし
CSSもかけて良いと思うけど


414:デフォルトの名無しさん
10/12/21 19:11:25
更新せずに書いたら同様のレスが既にあった

415:デフォルトの名無しさん
10/12/21 22:43:21
jCarouselLiteを使って

<script type=text/javascript src=path/to/jquery.js></script>
<script type=text/javascript src=path/to/jcarousellite.js></script>
<script type=text/javascript>
$(function() {
$(.carousel).jCarouselLite({
btnNext: .next,
btnPrev: .prev,
visible: 5
});
});
</script>

<div class=carousel>
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
<li>eee</li>
<li>fff</li>
</ul>
</div>
<p><a class=next>次へ</a></p>
<p><a class=prev>前へ</a></p>


で、動くにはうごいたんですが、
続きます。

416:デフォルトの名無しさん
10/12/21 22:45:21
続き

仮に、下記のように、表示件数が設定した数より少なくなってしまった場合に
挙動がおかしくなってしまいます。

<div class=carousel>
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
</ul>
</div>

<li>が一つしかないときなど、まったく表示されなくなってしまい困っています。
どなたか解決方法をご教授いただけると助かります。
例えば、<li>の要素数を取得して、ある一定の数以下では、実行しないなど。。。
よろしくお願いします。

417:デフォルトの名無しさん
10/12/21 22:56:01
>>415
自分でHTML書いてるのにvisibleの設定値より少なくなるってどんな状態だ?

418:デフォルトの名無しさん
10/12/21 23:05:50
>> 417
CMS使って、SNS見たいな感じのものをやりたくて。
その中の一部にカルーセルな機能を使いたいんです。
それぞれのユーザーごとにvisibleの設定を変えるのは面倒すぎるもので。。。

419:デフォルトの名無しさん
10/12/21 23:20:40
>>418
それならCMSで<ul>を作る時に一緒にvisibleの値を設定するのがいいと思うんだけど。
どうしてもJavaScriptでやりたいなら$('div.carousel > ul > li').lengthで値求めたらいいんじゃないかな

420:デフォルトの名無しさん
10/12/22 10:00:54
appendで思ったんだけど、生成されるhtmlってサーチエンジンから見るとどうなってんですか?

appendするんだから、ユーザーがそのページをロードしないと
コンテンツが存在しないわけじゃないですか?
サーチエンジンも、そこのロボットがページロードしてappendした内容をキャッシュするんでしょうか?

421:デフォルトの名無しさん
10/12/22 10:16:53
>>420
JavaScriptで生成される内容はクロール対象にならないから、
検索ボットに食わせたい内容ならJavaScriptでガリガリ書かない方がいいと思う
JavaScriptも解釈する検索ボットの話も出てるけどまだ現実的じゃないんじゃないかな
URLリンク(d.hatena.ne.jp)

422:デフォルトの名無しさん
10/12/22 10:36:58
ありがとうございます。なるほど。

クロール対象にならないってのはjavascript以外の動的コンテンツもですか??

例えばアマゾンのサイト内の商品のページってのは動的なコンテンツに見えますが
ググると上位に出て来ますよね。あれはどういうことなんですか?
自社内でいったん生成してキャッシュしてるのをクローラーに見せてるんでしょうか?


423:デフォルトの名無しさん
10/12/22 10:42:03
>例えばアマゾンのサイト内の商品のページってのは動的なコンテンツに見えますが

いや、商品名とかは普通に静的だろ・・・
まぁAmazonはCanonical URLとか小技使いまくってるけども

424:デフォルトの名無しさん
10/12/22 10:55:16
>>422の動的は多分PHPとかサーバーサイドでの動的って意味じゃないのかな・・・

425:デフォルトの名無しさん
10/12/22 12:06:19
スレチ気味ですみません

そうか。サーバー側で生成するものは動的なコンテンツでもクロールされるんですね。
アマゾンの検索結果ってあるじゃないですか。サイト内の検索窓にアーティスト名とかを入れて、関連商品がざーっと表示されますよね。
その「サイト内検索結果ページ」がグーグル上位(場合によっては1位)にあったりするのが???だったんです。

426:デフォルトの名無しさん
10/12/22 12:39:10
>>425
ブラウザでJavaScriptオフにした状態がクロールされると思えばいいよ

427:デフォルトの名無しさん
10/12/23 04:24:47
ASCII.jpの「40分で覚える!jQuery速習講座」
に載ってるアコーディオンパネルのサンプルコード
で、

$("+dd",this)

ってセレクタの記述が、jquery1.4.1だとうまく動くのに、
1.4.4だとうまく動かないのは、なぜ?

428:デフォルトの名無しさん
10/12/23 11:25:34
40分で書かれた本だから

429:デフォルトの名無しさん
10/12/23 15:01:09
なんだか珍しいセレクタの書き方だね。
よく分かんないけど下記のようにすれば確実だと思う。

if($(this).next('dd').css('display")=='none'){
$('dd').slideUp('slow');
$(this).next('dd').slideDown('slow');
}

$('+dd',this) の代わりに $(this).next('dd') を使ってる。

430:デフォルトの名無しさん
10/12/24 23:33:09
>>427
もう解決策は出てるけど挙動が気になって確認してみたが、
1.4.2から1.4.3にバージョンアップした際にcss周りの処理を
高速化した影響っぽい。

1.4.1だとセレクタを通しても中身が入るのに、1.4.4だとnullに
しかならないからサンプルが動かない。

デザイナーとの分業になってるとか、意図的にCSSのセレクタを
使いたい状況でもない限り、APIの方でアクセスした方が
将来的にも安心だろうな。


431:デフォルトの名無しさん
10/12/25 22:31:53
jQueryのプラグインの中を変更してるんだけど

fn.extend({
init: function
の中で
this.funcMoveLeft = function() { self.moveLeft(); }

とかやってるんだけどこれってどういう意味があるんでしょう?


432:デフォルトの名無しさん
10/12/25 22:49:06
それだけの情報じゃわからんだろw
もっとコード出すとかjQueryプラグインの名前出すとかしないと。
ただ、そのコード見るだけで判断すると単純にfuncMoveLeftってメソッドを定義してるだけだよね

433:デフォルトの名無しさん
10/12/25 22:51:19
>>431
その上に
var self = this
てのもあった

434:デフォルトの名無しさん
10/12/25 23:00:51
>>432
すいません。。
simplyScroll
URLリンク(logicbox.net)
っていうプラグインで
スライドショーの領域にhoverしたときにその中心とマウスの距離
流れる方向とスピードを変更する機能を追加しようとしてます。

でinitの処理内で
this.$container.mousemove(function(e){})
内でe.pageXとかは取得できるんですけど
その値をthis.o.speedに設定する方法が分かりません。
ひょっとしたらただのjavascriptのスコープの問題かもしれません。
分かりにくい説明ですいません

435:デフォルトの名無しさん
10/12/26 01:11:43
mousemove内のthisがsimplyScrollを見てないからじゃなくて?
下みたいな感じにしたらいけるんじゃないの?

var self = this;
this.$container.mousemove(function(e){
 // thisはdiv.simply-scroll-containerなのでselfでアクセス
 self.o.speed = 設定したい値
})


436:デフォルトの名無しさん
10/12/26 10:22:54
>>435
解決しました!
ありがとうございます。

437:デフォルトの名無しさん
10/12/26 11:00:27
すげー。

438:デフォルトの名無しさん
10/12/26 21:07:32
つーか、thisの扱いをどうするかなんて常識だろ。


439:デフォルトの名無しさん
10/12/29 01:49:13
リンクがクリックされたらjquery.loadで外部ページを読み込んでページの一部を書き換える処理を書いたのですが、
これに加えて、jquery.loadでのページ読み込みが完了したら元ページの一番上(スクロールバーが一番上にある状態)に移動したいのですが、
どのような処理を書いたら良いのでしょうか?

440:デフォルトの名無しさん
10/12/29 02:08:02
>>439
書き換え終わった後で
$(document).scrollTop(0)
とかやったらいいんじゃない?

441:デフォルトの名無しさん
10/12/29 04:13:03
$('#result').load('ajax/test.html', function() {
alert('Load was performed.');
});

442:デフォルトの名無しさん
10/12/29 16:35:59
>>440
できました。
ありがとうございます。

443:デフォルトの名無しさん
10/12/30 20:35:40
質問させてください。

以下のような自作クラスを作り、その中でjquery ui dialogを使っています。

var Sample = function(){
var param,
this.constructor = function(){
$("#dialog-form").dialog({
buttons: {'post': function () {
this.param = 1;
}
});
}
}

このdialogのbuttons パラメータの部分で、this.param = 1 としているのですが、
自分はこれを、Smapleクラスのオブジェクトのparamプロパティに代入するつもりで書いていました。
しかし、やってみるとこのthisはjquery ui dialogのオブジェクトを参照してしまうようで、
意図したとおりに動きませんでした。
このような場合に Sampleクラスオブジェクトのparamプロパティに値を代入させるには
どう書けばよいのでしょうか?

アドバイスいただけると幸いです。

444:443
10/12/31 02:30:53
答えが>>435に書かれていました・・ありがとうございます。

445:デフォルトの名無しさん
10/12/31 06:26:08
クロージャがわかるのになぜ…。
スコープぐらい自分で試して把握しないと、
いつまでたってもthisの挙動が理解できないぞ。


446:デフォルトの名無しさん
10/12/31 06:27:41
varの有無でscope変わるのが卑怯だ

447:デフォルトの名無しさん
10/12/31 06:35:56
letなら気持ちはわかるけど、
varの有無で卑怯の意味がわからんw
俺はよくできてると思うけどな

448:デフォルトの名無しさん
11/01/07 09:09:18
>>438
どうするの?

449:デフォルトの名無しさん
11/01/07 15:20:12
jquery
$('.hoge label').click(function(){
alert("");
});

html
<div class="hoge">
<label for="radio">
<input value="1" type="radio" id="radio" style="display:none;">
</label>
</div>

上記のソースでlabelに設定されている領域をクリックすると
コードが2回実行されます。
inputのidで指定した場合は1回のみ実行なのですが、display:none
のinputがIEで認識されないのでやむなくlabelを指定してfind('input')としています。
2回実行される原因は何なのでしょうか?

450:デフォルトの名無しさん
11/01/08 00:30:13
labelの領域をクリック→labelが反応→対応しているラジオボタンが反応→対応しているlabelが反応って感じか。
原因は知らんけど click イベントの中で e.preventDefault() を入れたら二度呼ばれるのは回避できた。

451:デフォルトの名無しさん
11/01/08 01:43:36
>>448
thisは変数じゃなくてキーワード。
匿名関数内で外部でのthisの実行結果を取り出したいなら、
変数に渡してクロージャ化するのは常套手段。
今のJavaScriptなら基礎レベル。

452:デフォルトの名無しさん
11/01/17 16:35:10
$.postで使う第2引数についてです。
URLリンク(allabout.co.jp)
を参考にformに入力されたデータをpostする際に、入力項目を列挙せずに
for (form.element.length)みたい感じですっきりさせたいと思いましたが
何故か<form>タグがなく、<form>タグを追加したら非同期ではなくなってしまいました。
<form>タグなしでform.element.lengthのようなアクセスはどう記述したらいいでしょうか?

453:デフォルトの名無しさん
11/01/17 19:54:31
formに入ってればserializeで送れるよ
$.post(url, $('form').serialize(), function(){})

非同期になるのは$.postした時にsubmitしてるからじゃね

454:452
11/01/17 20:51:56
>>453

ありがとうございます!頂いたserialize()をぐぐったところ↓を見つけました
URLリンク(semooh.jp)

&でkey=valueになるようですが
key:value,key:value,key:valueの形に返してくれるメソッドはありますでしょうか

455:452
11/01/17 21:10:33
>>453
ごめんなさいserialize()でかえってくる形で大丈夫でした
URLリンク(d.hatena.ne.jp)
ありがとうございました!

456:デフォルトの名無しさん
11/01/21 11:26:15
空のjQueryオブジェクトに、新しく要素を追加するのって
どうやればいいんでしょう?

// 空のjQueryオブジェクトに要素がappendできない
var $list = $([]);
$list.append($("<H3>できない</H3>"));

// 最初に何か1つ入ってればappendできる
var $list = $("<div></div>");
$list.append($("<H3>できる</H3>"));


空のところに追加したいです。


457:デフォルトの名無しさん
11/01/21 12:39:59
何がやりたいのかよく判らないが
色々と誤解があるような気がする

思い切ってエスパーすると

$("body").append($("<H3>できない?</H3>"));

とかではだめ?

458:デフォルトの名無しさん
11/01/21 12:48:14
>>457
ありがとう。
bodyにappendする要素を事前に動的に作成しておきたい、
という趣旨です。

var $list = $([]);
$list.append($("<H3>できない</H3>"));
// さらに$listに対して、form系の要素の追加やイベント設定をした後に
$("body").append($list);

といった感じで。


459:デフォルトの名無しさん
11/01/21 13:34:37
つまり

要素を作りたいがbodyの下には入れたくない
さらに、その"幽霊"要素を必要な時にbodyの下に送り込みたい

という事でしょうか?

あるいは単純に、必要な時に必要な要素が使え、また追加できればよい
という事でしょうか?

前者の例は、そもそも出来るか判らないですが、後者の例でしたら
色々解法はあるかと思います。

例えば、
・必要な時に普通にappendする
・最初にappendして非表示にする
・追加する要素のHTMLコードを文字列配列にして .html(lst[0]);とか適宜適用する

趣旨に反したら御免なさい

460:458
11/01/21 13:40:19
>>459
レスありがとうございます。
その観点で行けば後者なんですが、
そもそも知りたいことは、

「空のjQueryオブジェクトに対して動的に要素を追加できるのか否か」

の1点です。
空でなければ、とりあえずDIV要素で囲むなどして
やりたいこと自体は実現できているので。。。
ただこの場合、とりあえず囲むためだけに使っているDIV要素が
そもそも不要なので、最初から空の状態でオブジェクトを作りたいのです。



461:デフォルトの名無しさん
11/01/21 13:55:25
fragment的なことがやりたいんだろうな。
<div></div>に作って、最後にまとめてappendすればいいんじゃね

var flagment = $('<DIV></DIV>');
// flagmentになんやかんやする
var body = $('body');
flagment.conents().each(function () { body.append(this) });

まあこんなfragment作るより、配列のまま扱うほうが軽くね?とは思うが。

462:デフォルトの名無しさん
11/01/21 14:03:17
出来る事は出来ました。


//objListはパブリックで定義
objList.push($("<H3>000</H3>"));
$('body').append(objList[0]);

463:デフォルトの名無しさん
11/01/21 14:07:09
$([])これで帰ってくるのはただのArrayObjectだったような
だからそのやり方で出来るのは当然かな・・・?

464:デフォルトの名無しさん
11/01/21 14:09:28
>>460
>「空のjQueryオブジェクトに対して動的に要素を追加できるのか否か」
変なこと言ってるって自分で気付いてる?

jQueryオブジェクトってのはDOMの配列みたいなもんで、
それが空ってことは要素ゼロなわけ。
それにappendメソッドを呼んでも何も起こらないのは分かるよね?


465:デフォルトの名無しさん
11/01/21 14:36:51
>>461
やはりDIVで囲んだほうが無難ですかね。。。
不要な要素は入れたくなかったのですが、
確かに最初に<div></div>を作れば、やりたいことは実現できています。

>>462
なるほど、pushを使えば良さそうですね。
試してみたところ、やりたいことに近い状態になりました。
ありがとうございます。

>>463-464
URLリンク(stackoverflow.com)
この辺見てたり、「empty jQuery object append」とかでググってたところ、
けっこう似たようなことをやりたがってる人たちが多いような感じだったので
旨い方法は無いかなと探していた次第です。
ともあれ、

1) <div></div>を作ってそこにappend等する
2) pushを使う

このあたりで検討してみます。レスくれた方々ありがとうございました。


466:デフォルトの名無しさん
11/01/21 15:24:15
>> 465
なるほど。addメソッドで追加してやればいいのか。

var a = $('')
a = a.add($('<DIV>1</DIV>'));
a = a.add($('<DIV>2</DIV>'));
a.length // 2

この挙動を見る限り、jQueryオブジェクト(のもつset)自体はimmutableなんじゃないかな。


467:デフォルトの名無しさん
11/01/21 15:25:33
addにはHTML渡せるね。

a = a.add('<DIV>3</DIV>')


468:デフォルトの名無しさん
11/01/22 21:39:17
>>446
常にvar使ってれば、そもそも悩む事もねえだろ。

469:デフォルトの名無しさん
11/01/24 09:14:19
varを使わないメリットってある?


470:デフォルトの名無しさん
11/01/24 18:49:11
>>469
メリットは無いだろ。
デメリットはあるけど。

471:デフォルトの名無しさん
11/01/24 18:57:35
>>469
変数が自由に使える点

472:デフォルトの名無しさん
11/01/24 22:39:07
助けてください。
URLリンク(solidstate.jp)
に書いてあるファイルをダウンロードし、そのままコピペしたページを作ったのですが
(もちろん読み込みファイルのディレクトリとかは自分の環境に合わせてます)
全く動きません。
上記サイトでは問題なく動くのですが、コピペした自分のサーバでは、全く動かないのです。
FireFoxのエラーコンソールには、
「属性セレクタ中に不正なトークン'!'が含まれています」
ってメッセージが出るだけで.......

助けて。エスパー


473:デフォルトの名無しさん
11/01/24 23:00:42
>>472
せめてどのファイルを読み込んだかとHTMLを書いた方が答えやすいからそうした方がいい

とりあえずjquery1.3.2なら動くけど1.4系は動かないね。どこが問題かまでは見てないけど。

474:デフォルトの名無しさん
11/01/25 09:06:41
>>470-471
㌧キュー
グローバルが特に必要無ければ、グローバルは
まったく使わなくてもいいんだよね?

全変数・全オブジェクトはvarで宣言するってことで


475:デフォルトの名無しさん
11/01/25 11:33:25
>>474
(function(){
var hoge=fuga;
var hage=hige;
...
})();

と必ず書く人もいるね


476:デフォルトの名無しさん
11/01/26 03:41:17
appendで追加する要素をfadeInで表示したいんですが、
これよりスマートな書き方はありますか?

$('#items').append('hogehogehoge').css('display', 'none').fadeIn();

追加→非表示→フェードインの3アクションあるのが無駄な気がするんですが
これを一括に行うメソッドとかないですかね

477:デフォルトの名無しさん
11/01/26 08:47:29
ラップする関数作ればいいんでね?

478:デフォルトの名無しさん
11/01/26 13:38:43
appendする要素をCSSファイルのほうでdisplay:noneにしとく

479:デフォルトの名無しさん
11/01/26 15:56:39
自分でやる時は>>478が言ってるみたいにnoneクラス作っちゃうな
.none {
 display:none;
}
で#itemsにnoneのクラス付けとく

ただ、普通appendする時って#items内に既に別の要素がある場合がほとんどだから
自分の場合は#itemsには.noneを付けずに
$('<span/>')
.text('hogehogehoge')
.addClass('none')
.appendTo('#items')
.fadeIn();
みたいにやるな。で、それを>>477の言うとおりラップ関数にする

480:479
11/01/26 15:59:36
あ、noneクラス外し忘れた。
.fadeIn(function(){
 $(this).removeClass('none');
});
あとはnoneクラス用意せずにhide()使うとかかな

481:デフォルトの名無しさん
11/01/26 21:30:03
>>480
CSSであらかじめ定義しておくのは呪文が増えるだけでメリット無いと思う
やらない方がいいよ

482:デフォルトの名無しさん
11/01/28 01:40:15
>>476
cssメソッドはあまり使わないほうがいいよ。
理由は、見た目を制御するのは、cssファイルでやるものだから。

483:デフォルトの名無しさん
11/01/28 01:47:34
じゃあhideとかshowとか使えんな

484:デフォルトの名無しさん
11/01/28 03:53:26
removeが簡単に関数一発で元に戻せるようになれば
そういう方向性もありかもねえ

485:デフォルトの名無しさん
11/01/28 12:08:52
>>482
プラグイン化したものを他で使おうとするとCSSまで修正しなくてはいけなくなるから修正箇所増える
他人が見てもなんで予想外の動作するのかわかりにくい
ライブラリの外で定義しとかないといけないグローバル変数を使うよりたち悪い

486:デフォルトの名無しさん
11/01/28 14:13:01
どっちも一長一短だろーに。

487:デフォルトの名無しさん
11/01/28 21:52:54
>>483
hideやshowはオブジェクトがそこにある、
ないという見た目だけの問題じゃないから
例外だよ。

少しは柔軟に考えような。

488:デフォルトの名無しさん
11/01/29 22:09:22
$.ajax で success に処理がいくために必要な条件をご存じの方、いらっしゃいませんか?
サーバーサイドから適切な値が返ってきてるのに success 後の処理に入ってくれなくて困っています。
ちなみに error にもいきません。

489:デフォルトの名無しさん
11/01/29 22:41:11
コードの単純なミスな気がする

こんな感じで動くとは思うが

function fncAjax() {

$.ajax(
{
dataType: "JSONP",
data: {
},
cache: false,
type: "POST",
url: "cgi-bin/test.cgi",
beforeSend: function(){
},
success: function (datareturn) {
//成功処理
},
error: function (datareturn) {
//失敗
},
complete: function (datareturn) {
//完了
}
}
);

}

490:デフォルトの名無しさん
11/01/30 05:51:28
>サーバーサイドから適切な値が返ってきてるのに

それ思い込みだから

491:デフォルトの名無しさん
11/01/30 15:37:55
>>473
ありがとうございました。1.3.2で無事動かせることが出来ました。
ただ、もう一つ問題がありまして。質問させていただきます。
実はこのボックスを、ajaxで後から読み込んで使いたいのですが、意図した動きをしてくれません。
最初から表示している分には問題なくリサイズやドラッグが出来るのですが、
後から読み込んだ物は、全く動作しない状況です。

どのようにしたらよろしいでしょうか?

492:デフォルトの名無しさん
11/01/30 15:53:06
$('input#btnNew').live('click', function() {
alert('新しく作ったボタンのイベントはliveを使用');
});

493:デフォルトの名無しさん
11/01/30 17:09:23
JSのモーダルダイアログは、もう使わないほうがいい?

494:デフォルトの名無しさん
11/01/30 17:44:36
なんで?

495:デフォルトの名無しさん
11/01/30 17:59:18
>>492
clickの部分をドラッグドロップの場合、どのように設定したら良いのでしょうか?
それとも491への回答ではないとか??

496:デフォルトの名無しさん
11/01/30 20:01:38
>>495
元の質問を読んでいなかった

で、色々試したのだけれど

$("body").append('<div id="divtest" class="jqDnR">');
$("#divtest").append('<div id="divtesttest" class="jqResize">');
$('#divtest').jqResize('.jqResize');

こんな感じでいけた

497:デフォルトの名無しさん
11/01/30 21:58:51
<a href="/news/">
<a href="/access/">
というナビゲーションで

$("a[href^='/']").each(function() {

var obj = $(this);
var link = obj.attr('href');
var file = "index.html";

obj.attr( 'href', link + file );
}

attr()をディレクトリによってindex.phpとindex.htmlに振り分けたいんですけど

/news/のときindex.php
/access/のときindex.html

どうすればよいでしょう?

$("a[href*='news']")..... みたいなことを考えたんです挫折しました

498:デフォルトの名無しさん
11/01/30 23:11:15
IF文とか使うんじゃダメ?

たくさんディレクトリーがあるんなら連想配列を用意して
ディレクトリ名をキー、ファイル名を値にするとか?

jQueryにこだわる事もないと思う
(上手い方法があるのかもしれないけど)

499:デフォルトの名無しさん
11/01/30 23:59:48
配列にするかmod_rewriteかな

500:デフォルトの名無しさん
11/01/31 00:04:43
そうですね配列ですよね
みなさまどうもありがとうございます!

501:デフォルトの名無しさん
11/01/31 02:59:34
>>488
firebugのコンソールで見ればいいじゃん
正しいレスポンスが返ってきているかどうかそれみりゃ分かる
大抵は正しいJsonをサーバ側が返しておらずjQueryがパースできない
とかそんな理由で動作してない

Jsonチェック
URLリンク(www.jsonlint.com)

502:デフォルトの名無しさん
11/01/31 10:28:27
お前らjQueryの前にJavaScriptの勉強しろよ。

503:デフォルトの名無しさん
11/01/31 20:47:52
>>496
ありがとう。
ばっちりでした。

504:デフォルトの名無しさん
11/02/02 15:09:54
checkboxをマウスでをクリックした場合はchangeイベントが呼ばれるのに、
jQueryから設定した場合はchangeが呼ばれないので、
しかたなく次のようにしているんですが、何か間違っているでしょうか?
cb.attr("checked", "checked").change();

505:デフォルトの名無しさん
11/02/02 17:12:02
cb.bind("click", function(){
  alert("チェクボクスのクリッコ:"+cb.attr("checked"));
};);

ではどう?試してないけど。


506:デフォルトの名無しさん
11/02/02 18:46:54
jqueryってブラウザ間の差異を吸収してくれるんですよね
ひとつのブラウザでテストすれば
jqueryがサポートしている他のブラウザどれでも同じように動くと思って問題ないですか?

507:デフォルトの名無しさん
11/02/02 19:33:14
>>506
そうは言ってもIEの糞さは想定を上回る
FirefoxとChromeだとスムースなアニメーションが
IEのだとカックカクな時があるので
念のため確認しておいたほうがいい

508:デフォルトの名無しさん
11/02/02 20:08:22
>>507
どうもありがとうございます
そうします

509:デフォルトの名無しさん
11/02/02 20:41:18
>>508
IE6の糞さってのはCSSを仕様通りに解釈してくれない部分にある。
jQueryの役目はDOM要素の操作までだから、操作後のHTML+CSSをIE6が
とんでもない解釈しても、jQuery側はそれを修正することはできない。
IE6は人類のために早く滅亡すべき。IEが唯一役に立つシーンは
FirefoxやChromeをダウンロードするその時だけ。

510:デフォルトの名無しさん
11/02/02 21:02:59
IE6を使ってる情弱は20%もいる
そして情弱は疑いもなくアドセンスをクリックしてくれる上得意客
切り捨てられない事情があるんだ
こうしてガラパゴス・ジャパン・スタンダードが作られていく
嘆かわしい

511:デフォルトの名無しさん
11/02/02 23:07:51
IE6をあまり悪く言うなや。
10年前のブラウザだぞ。
当時の他のブラウザはIE6よりもはるかに劣っていただろ。
むしろ今でも使えることに驚けよ。

512:デフォルトの名無しさん
11/02/02 23:59:57
入力フォームの工夫ってどういうのやってますか?


513:デフォルトの名無しさん
11/02/03 08:10:50
>>509
同意だが
Windows2000だとIE6からもうそれ以上バージョンアップ出来ないんだよね

514:デフォルトの名無しさん
11/02/03 12:16:50
IE6のすばらしさは縦スクロールバーがデフォで左右にカクカクしないことに尽きる

515:デフォルトの名無しさん
11/02/03 12:17:38
>>513
>Windows2000

正式サポートが去年オワタから白嶺

516:デフォルトの名無しさん
11/02/03 13:34:58
>>515
MSが一方的にもうしらねと投げ出しただけで
利用者はまだまだ数多くいらっしゃる訳だ

517:デフォルトの名無しさん
11/02/03 13:51:15
そういう人らはJavaScriptオフで使ってもらえばいい

518:デフォルトの名無しさん
11/02/03 19:29:03
質問です。
ajax関数を使うときに、
successキーに設定したコールバック関数内で、
ajax関数が始まる前に設定した変数を使いたい場合はどうすればいいのでしょう?
グローバル変数にしておく方法が一般的ですか?

var name = 'hoge';
name2 = 'global';

$.ajax({
  type: 'GET',
  url: './ajax.php',
  data: 'data=' + $(this).text(),
  success: function(res) {
    alert(name);
    alert(name2);
  }
});

519:デフォルトの名無しさん
11/02/04 03:16:36
(function(){
var name = 'hoge';
var name2 = 'global';

$.ajax({
  type: 'GET',
  url: './ajax.php',
  data: 'data=' + $(this).text(),
  success: function(res) {
    alert(name);
    alert(name2);
  }
});
})();

520:デフォルトの名無しさん
11/02/04 22:35:28
jQuery を使用して、以下のことをしたいのですが、どうしても出来ません。

<ul>要素内のアイテム(複数あります)を
別の外側の要素<div>にドラッグアンドドロップで移動させます。

draggable・droppableを使用してます
<--ここまではできるのですが-->

ドラッグアンドドロップで移動させた要素を、<div>内で並べ替えをさせたいのです。
sortableを使用しても、並べ替えが出来ません。 

解決方法を知っている方は、ご教授お願いいたします。





521:デフォルトの名無しさん
11/02/04 23:19:28
ya da.

522:デフォルトの名無しさん
11/02/04 23:33:32
馬鹿には無理

523:デフォルトの名無しさん
11/02/05 00:37:44
>>520
ヒント>>492

524:デフォルトの名無しさん
11/02/05 13:38:46
>>514
そこだけは同意

525:プログラム初心者
11/02/11 14:35:27
お願いします。

ajaxで以下のコードを読み込むと
テストのインナーHTMLがalertで表示されません。
$(function(){});はwindow onloadですので、
ajaxで以下のhtmlを取得し、どこか出力したいの要素にアペンドすると
<div id="test">が読み込まれる前に実行されてしまうようなので、
良い対応策をご教示ください。


<script type="text/javascript">
<!--
$(function(){
alert($('#test').html());
});
-->
</script>

<div id="test">テストのインナーHTML</div>

526:デフォルトの名無しさん
11/02/11 20:28:23
>>525

<div id="test">テストのインナーHTML</div>

<script type="text/javascript">
<!--
$(function(){
alert($('#test').html());
});
-->
</script>

527:デフォルトの名無しさん
11/02/12 06:25:44
<script type="text/javascript">
<!--
$(function(){
settimeout(alert($('#test').html()), 100);
});
-->
</script>

<div id="test">テストのインナーHTML</div>

528:デフォルトの名無しさん
11/02/12 23:42:43
これでKIOSK端末つくった事例は無いですか。
あったら見たい。

529:デフォルトの名無しさん
11/02/20 22:14:27.53
細い回線でjqueryを使いたいのだけど、
ページごとに埋め込むと表示に時間がかかってしまう。
それを回避させるために、隠しフレーム配置してすべてのページから、
参照して使うというやり方はできますか?

530:デフォルトの名無しさん
11/02/20 22:41:03.34
>>529
ページごとに埋め込む?
データソースで指定するって意味だよね?
まさか、本当に埋め込まないよね?

531:デフォルトの名無しさん
11/02/21 01:22:27.19
>>529
細い回線の定義をだな・・・
最新版の軽いほうは29KBだそうだがそれでも重いか?w


532:デフォルトの名無しさん
11/02/21 15:05:20.86
>>529
google CDNからひっぱれ

533:デフォルトの名無しさん
11/02/21 22:58:12.49
隠しフレーム

ウケるw

534:デフォルトの名無しさん
11/02/22 12:30:33.31
隠しフレーム

懐かしい...

535:デフォルトの名無しさん
11/02/23 15:15:51.74
HEADタグ内にSTYLEタグを生成し、その内容を.queueを使って書き換えることによって、
同じCSSクラスの要素を一気にフェードアウトさせたり、フェードインさせたりすることができますよね?
(FireFox、Chrome、Operaで動くことは確認)

これ便利だと思うのに、標準関数はないわ、そういうことをやっている例もみたことないわで、何か問題があるんだろうか、と思っています。
何か問題ありますか?

536:535
11/02/23 15:25:06.92
追記。
$('.foo').fadeIn(...) みたいなコードで同じことができるのは分かっています。
ただ、これだとすべての要素を個別に書き換えることになるので、負荷の点などからSTYLEタグを使いたいわけです。

537:デフォルトの名無しさん
11/02/23 19:44:22.47
class使ってならjQueryUIのaddClass、removeClassの拡張があるよ

538:デフォルトの名無しさん
11/02/23 21:44:22.84
jqueryを使ったすべてajaxで動作するサンプルオープンソースを教えてけろ!
データの登録や削除もひと通りできてるようなのお願い!
59歳独身

539:デフォルトの名無しさん
11/02/24 05:42:50.27
ないので今作ってるとこ
あなたが生きてる間には完成しないかも知れない

540:デフォルトの名無しさん
11/02/24 19:36:50.52
リストをクリックして1枚の画像の指定の位置にスライドさせるものを作ろうとしているんですが
marginで指定するのが主流というか、多くとられてる手法なんでしょうか?

あとmarginってcssのようにmargin:x x x x;で複数指定できないんでしょうか
.animate({margin:"x x x x"});のように記述しても読み込んでくれんです。。

541:デフォルトの名無しさん
11/02/25 00:20:00.54
1.5ってはやい?

542:デフォルトの名無しさん
11/02/25 00:31:23.47
使ってないけど、そんなに変わるわけねーだろって思ってる。

jQueryに限らず○倍速くなりましたとかいうのは
一部の処理だけ見れば○倍速くなったかもしれんが、
その部分は全体のごく一部だから、殆ど変わらないという
結果になるのことが多い。

543:デフォルトの名無しさん
11/02/25 00:53:29.29
>>540
英語読めないにしてもsampleあるんだからドキュメント見たらいいのに。
そこに指定できるのはleftとかだよ
URLリンク(api.jquery.com)
> Shorthand CSS properties (e.g. margin, background, border) are not supported.
なのでmarginTopとかmarginLeftとか指定しなさい

544:デフォルトの名無しさん
11/02/25 18:52:38.95
>>543
thx
公式ってデモも載っててすごいわかりやすいんだね
1度も見たことなかった

545:デフォルトの名無しさん
11/02/28 02:48:31.61
>>544は可愛すぎると思うんだ

546:デフォルトの名無しさん
11/03/05 20:28:17.13
質問です。
アイコンにロールオーバーして
音を鳴らすのと同時に画像を変えるのって可能ですか?

547:546
11/03/05 20:33:45.41
すいませんケアレスミスでした
自己解決しました。。

548:デフォルトの名無しさん
11/03/05 21:17:16.71
かわいいよかわいいよ

549:デフォルトの名無しさん
11/03/05 22:03:58.22
>>435
亀だし、理由考えたら当たり前なんだけど
この発想がぱっとできなくて行き詰ったことがあるなぁw

550:デフォルトの名無しさん
11/03/06 16:07:32.32
複数の(大量の)トグルスイッチがあって、idをふらずに個別操作したいのですが
方法はありますか?

<div class="tgl">
<button>more</button><div class="more">text 1</div>
</div>
<div class="tgl">
<button>more</button><div class="more">text 2</div>
</div>


function($){

$("button",".toggle").click(function() {

$(".more",".toggle").slideToggle("slow",function(){

if ($(this).is(":hidden")) {
alert("bye");

} else {
alert("hello");
}
});
})
});

551:デフォルトの名無しさん
11/03/06 16:08:16.56
>>550
>class="tgl"

class="toggle"

です
すみません

552:デフォルトの名無しさん
11/03/06 16:25:34.20
このスレってWeb制作板向けですよね
何でここにあるんですか

553:デフォルトの名無しさん
11/03/07 00:19:56.46
その両者の区別が消えつつあるのは確かかと…
node.jsなんてどっちで扱うべきかマジで迷うよね

554:デフォルトの名無しさん
11/03/07 00:24:18.90
node.jsはWebProgにあってもおかしくないがWeb制作はないだろ
Web制作って基本フロントに関する話じゃないの

555:デフォルトの名無しさん
11/03/08 15:43:10.43
質問させてください。

faceboxというプラグインがありまして、
<a href="/entries/new" rel="facebox">test</a>
のようにして、「テスト」テキストリンクをクリックすると、
/entries/new に アクセスしてレスポンスとしてフォームのhtmlを受け取り、
ポップアップでフォームがはめこまれたダイアログを表示してくれるという便利なものなのですが、
どこかで rel属性をそういった用途に使うのは非推奨になったと聞きました。

フォームのhtmlをdisplay:none;とかにしてクライアントに保持しておかなくて済むので
重宝していたのですが、上記に変わる便利なやり方、プラグインはなにかないでしょうか。

ご教示頂けますと幸いです。

556:デフォルトの名無しさん
11/03/08 16:28:51.18
>555
class属性に変えるのじゃだめなん?

557:565
11/03/08 17:38:30.31
すみません、具体的にはどんな感じになりますでしょうか?

あと、
URLリンク(chriswanstrath.com)
こちら見ますと、やっぱりrelを使うやり方が書いてあり、jqueryも1.3系が推奨になっているようです。
URLリンク(github.com)
こちらを見ますと1.4系にも対応しているにも見えるのですが・・

558:デフォルトの名無しさん
11/03/08 19:33:25.62
いや、faceboxのソースいじって、class="facebox"でできるようにすればいいのでは?ということなんだが

559:デフォルトの名無しさん
11/03/09 07:52:18.56
>>557
良く分からんがパッと見た目156行目に下記を追加で>>558の動作になりそうな気がする?
※defunkt-facebox-cbe32e1/src/facebox.js
if( $(this).hasClass("facebox") ) klass = "facebox";

560:デフォルトの名無しさん
11/03/09 14:51:27.87
>>550

.live() 使えばいけるだろ

561:デフォルトの名無しさん
11/03/13 21:25:36.52
スレリンク(hp板:462-484番)


562:デフォルトの名無しさん
11/03/17 04:42:21.37
>>550
$("div.hoge").each(function(index, elem) { $(elem).attr("id", "hoge"+(index+1));});

563:デフォルトの名無しさん
11/03/18 07:59:45.29
お腹すいた

564:デフォルトの名無しさん
11/03/18 09:23:32.68
コンビニ行っても何も無いよね
自宅警備中のニートには辛いわ


565:デフォルトの名無しさん
11/03/19 20:14:43.46
おなかすいたお

566:デフォルトの名無しさん
11/03/21 09:35:57.43
爆発を見た日に買い貯めした食料が底を尽き掛けている
今日は雨なので外に出たくない


567:デフォルトの名無しさん
11/03/21 11:31:27.71
日記はチラシの裏にでも(ry

568:デフォルトの名無しさん
11/03/22 09:08:16.15
牛乳が

牛乳が買えたお

569:デフォルトの名無しさん
11/03/22 22:38:16.53
いつものと違う見慣れない牛乳がやっと手に入った
次はトイレットペーパーだ

570:デフォルトの名無しさん
11/03/24 13:23:56.64
コンビニにゴハンがない

571:デフォルトの名無しさん
11/03/24 18:03:12.35
水も無くなった ><

572:デフォルトの名無しさん
11/03/24 21:22:20.22
iPhone用のサイトなんだけど、thickboxつかってモーダルウィンドウ出すと
オーバーレイで暗くなる部分が寸足らずで、下のほうが明るいまま。
だれか助けて(´;ω;`)

573:デフォルトの名無しさん
11/03/24 22:34:22.72
なんで今頃ちっくぼっくす使ってんだ




















今頃w

574:デフォルトの名無しさん
11/03/26 02:39:38.71
牛乳が買えない

575:デフォルトの名無しさん
11/03/26 09:16:15.53
おい!
セブンに見たことの無い牛乳が!

576:デフォルトの名無しさん
11/03/26 17:45:53.95
ローソンでも見たこと無い牛乳が入荷して来てる
うちの近所だとセブンイレブンの方が圧倒的に物量で勝ってる

577:デフォルトの名無しさん
11/03/26 18:02:20.94
以下のソースで、各リンクをクリックしたときのイベントを登録しようとした場合、例1と例2ではどちらが正しいのでしょうか?
どちらも同じ動きをするのですが、eachを使って要素分まわしながら登録するべきなのか、使わなくてもいいのかわかりません。

<a class="link">テスト</a>
<a class="link">テスト</a>
<a class="link">テスト</a>

例1
$(document).ready(function(){
$('.link').each(function{
$(this).click(function(){
//処理~
});
});
});

例2
$(document).ready(function(){
$('.link').click(function{
//処理~
});
});

よろしくお願い致します。

578:デフォルトの名無しさん
11/03/26 18:40:23.83
東京の放射線量って今どのくらいなんだろ
来週出張なんだけどやだなぁ

579:デフォルトの名無しさん
11/03/26 19:19:10.69
>>577
2の方で良い。動的に追加したエレメントにも対応させたきゃliveね。


580:デフォルトの名無しさん
11/03/26 19:51:24.77
>>578
URLリンク(park30.wakwak.com)


581:デフォルトの名無しさん
11/03/26 20:12:14.96
URLリンク(ftp.jaist.ac.jp)

582:デフォルトの名無しさん
11/03/26 20:38:24.57
えびぞーとまおが九州に逃げててワロた

583:デフォルトの名無しさん
11/03/26 23:13:47.16
>>579
ご回答ありがとうございました。

584:デフォルトの名無しさん
11/03/26 23:17:04.06
>>580
またピンポイントでウンコなサイトを紹介してきたね

585:デフォルトの名無しさん
11/03/27 07:36:08.01
>>582


586:デフォルトの名無しさん
11/03/29 07:05:00.18
パンが売ってないお

587:デフォルトの名無しさん
11/03/29 10:31:30.57
パンが無ければケーキを食え

588:デフォルトの名無しさん
11/03/29 10:42:35.98
小麦粉スレが見つからないよ
どこ?

589:デフォルトの名無しさん
11/03/29 11:51:56.32
attr("abc")
で、ランダムでタグに属性を追加しました。

ページ内で、追加した"abc"を持つタグのみを抽出したいのですが、できますか?

590:デフォルトの名無しさん
11/03/29 11:59:58.71
>>589
> attr("abc")
> で、ランダムでタグに属性を追加しました。

それじゃ、属性追加できないんじゃないかな。属性を追加するためには、.attr( attributeName, value ) でないといけないだろ。
で、追加したものは$('*[name="value"]')で選択できると思う。

591:デフォルトの名無しさん
11/03/29 12:12:57.29
>>590
>attr( attributeName, value ) でないといけないだろ。
そのとおりでした。

alert($(["abc"]));
で表示すると、objectが表示されているので、大丈夫そうでした。
この状態で、"abc"が含まれているオブジェクトのIDを順に取得したいのですが、
これもできるのでしょうか?


592:デフォルトの名無しさん
11/03/29 12:18:27.33
>>591
何をしたいのかいまひとつ分からんが.eachを使えばできるじゃね?
URLリンク(semooh.jp)

593:デフォルトの名無しさん
11/03/29 12:51:18.82
>>592
なにかうまくいきません。下記のようなことがしたいです。
1.画面上の一部のinput,select項目に、属性"abc"を追加しています。値はすべてバラバラです。
2.ボタンを押下すると、画面内のオブジェクトをサーチし、
  属性"abc"をもつ項目のみ抽出したいです。
3.抽出した結果、input,selectで入力した値と、属性"abc"を比較して、
  同じであれば、エラーにしたいです。

で、下記のコードを教えて頂いた内容とともに書いてみました。
$('*["abc"]').each(function()
{
i++;
}
);

alert(i);

私の考えでは、表示される項目が30個("abc"の属性を持つものが30個なので)のはずですが、
iが150とかになります。
おそらく"abc"の属性をもつ項目以外も抽出されてるのではないかと思います。
なにかがおかしいとは思いますが、見当がついてないです。


594:デフォルトの名無しさん
11/03/29 14:51:57.54
なにかがおかしいとは思いますが、見当がつかないので
実際に使ったコードを載せてください

595:デフォルトの名無しさん
11/03/29 15:04:50.61
そうそう。説明がヘタなら本物をさらさないとレスが増えるだけで話がすすまない

596:デフォルトの名無しさん
11/03/30 07:19:58.89
>>593

var $body = $('body');
$body.contents().detach();
var $form = $('<form />').appendTo($body);
for(var i = 0; i < 10; i++){$form.append('<input />')};
var $inputs = $form.children();
$inputs.each(function(i){if(i%3 == 0){$(this).attr('abc', i)}});
var j = 0;
$('input[abc]').each(function(){j++});
alert(j);

URLリンク(jquery.com) を開いて、Google Chromeのコンソールにこのコードを入力すると、「4」と表示される。

597:デフォルトの名無しさん
11/04/03 19:51:49.76
domをzen codingのような形式で全部吐き出せるようなプラグインって無いかな
文章も込みで


598:デフォルトの名無しさん
11/04/06 19:42:23.67
<select>のプルダウンメニューで、選ばれた時に、特定の要素をトグルにしたいのですが、
selectもchangeもclickも、うまくいきませんでした。

プルダウンメニューの特定の項目が選択されたら、それに対応する要素にtoggleClassさせる方法はありますか?

599:デフォルトの名無しさん
11/04/06 20:18:32.73
自己解決しました

600:デフォルトの名無しさん
11/04/07 04:48:57.22
質問投げといて解決したって言うのに結果もロクに示さない自己マンは公共の場所へ来るなよ

601:デフォルトの名無しさん
11/04/07 08:17:13.43
JQuery mobileで
リンク先をexternalにすると
transitionが使えなくなるんですけど
何かいい解決方法を知っている
人いないでしょうか


602:デフォルトの名無しさん
11/04/08 17:31:40.84
スマートフォンサイトでjcarouselliteを使っているのですが
スマホで更新を行うとDiv内の要素が無視されて下のdiv要素が
上からかぶってしまいます。
リンクタグを押して再度画面を表示すると、きちんと表示されます。
Androidのブラウザのバグだと思いますが、例外的でもいいので
対処法は御座いますでしょうか?

<script type="text/javascript" src="./jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="./jcarousellite_1.0.1.min.js"></script>

603:デフォルトの名無しさん
11/04/08 18:27:34.25
>>602

自己解決しました。
画像の高さ指定を行っていなかった為、jcarouselliteが高さを認識
できずにつぶれていました。

604:デフォルトの名無しさん
11/04/14 11:49:40.30
toggle() や slideToggle() で折りたたみを開く際に大きくサイズオーバーしてしまいます。
隠す要素にリストなどのブロックを float で横並びにさせたものがあると起こるようなのですが、
回避策はないでしょうか?
よろしくお願いします。

605:デフォルトの名無しさん
11/04/14 12:29:09.99
どえらいおおざっぱな質問だな
ソースを見てどの要素が崩れるか見てみないと答えようがない

606:Perl忍者lvl4 ◆M5ZWRnXOj6
11/04/15 22:57:59.75
getJSONで取得したjsonを配列にいれて使いたいんだけどどうやればいいの?

[ 'hage.jpg','baka.jpg','aho.png']
っていうjsonファイルあったらさ

getJSONで読み込んで配列にいれて

hage.jp,baka.jpg,aho.jpgの3個 配列MAXまで繰り替えして
html生成したいんだけど
<a href="hage.jpg">hage.jpg</a>
<a href="baka.jpg">baka.jpg</a>
<a href="aho.jp">aho.jpg</a>

やりかたおしえてください!!!!!!

607:Perl忍者lvl4 ◆M5ZWRnXOj6
11/04/15 22:59:45.58
ああああ・・・できそうです

608:デフォルトの名無しさん
11/04/19 15:04:11.39
1つのページで複数の jQuery UI ダイアログを使う場合の定義の仕方がわかりません。
ダイアログが1つの場合は、
<script type="text/javascript">
<!--
jQuery(function($){
$('#button1').button();
});
$(function(){
$("#dialog1").dialog({
//autoOpen:false等ダイアログプロパティの定義
buttons: {
//ボタンの定義
});
$("#button1").button().click(function(){
$("#dialog1").dialog("open");
});
});
-->
</script>
で、画面表示時はdialog1は非表示になっており、button1がクリックされるまでは
表示されないという動作ができています。
ここに新たな、同じようなダイアログとボタンの組み合わせを設けたい場合、
どのように定義すればよいでしょうか?

609:608
11/04/19 15:15:11.27
補足です。>>608で書いたダイアログとボタンの組み合わせを同様な書き方で
2つ(dialog1、button1、dialog2、button2として)定義してみましたが、
それでは上手く動作しませんでした。
動作環境は、Firefox3.6.16とjquery-ui-1.8.7.custom.min.jsを利用しています。

610:デフォルトの名無しさん
11/04/19 16:02:44.46
dialog1とかそれぞれの意味は理解してるの・・・?

611:デフォルトの名無しさん
11/04/19 19:29:25.03
111 :Perl忍者 ◆M5ZWRnXOj6 :2010/12/14(火) 17:37:22 ID:rQueV4DL
javascriptをやってるやつは低能なんだろ
ゴミ頭がごみめら
マジ可哀想なんていうかかすそのもの
javascriptwwwwwwwwwwwwwww
ウェブサイト?wwwwwwwwwwwwww
わらわせんじゃねえよごみめら
URLリンク(www2.atpages.jp)

Perl忍者だけどさあークズプログラマども
スレリンク(php板)
IT業界潰れろby、Perl忍者
URLリンク(unkar.org)

612:デフォルトの名無しさん
11/04/19 19:32:54.67
そんなもの貼らんで良い

613:デフォルトの名無しさん
11/04/20 22:51:02.90
<div>
<form
テキストフィールド、ボタンなど
/form>
</div>

ボタンを押すと↑のようなフォームがslideDown、slideUpで表示させたり消したり
させる物と作ってます。
slideDownの時はいいんですがslideUpの時に
徐々にフォームが消えていって消える直前にフォーム全体が一瞬表示されて
その後完全に消える状態になってしまっています。
フォームのmarginを無くしたり<P>で包んで見たりと色々と試してみたのですが解決できません
何かわかる方お願いします。

614:デフォルトの名無しさん
11/04/20 23:19:43.45
>>613
ブラウザとバージョンは?
あと実際のコード


615:デフォルトの名無しさん
11/04/21 08:12:21.27
>>614
遅くなり申し訳ない
IE8です。っていうかIE以外CSSがまったく読み込まれてなかったなんでだろ?
まぁその辺は自分で解決します

実際のコードは
$(function(){
$("#info div").css("display",'none');
$(".s_btn").click(function(){
if($($(this).attr('href')).css('display')=='none'){
$("#info div:not($(this).attr('href'))").slideUp('slow');
$($(this).attr('href')).slideDown();
}else{
$($(this).attr('href')).slideUp();
}
})
})

実際にはslideさせるフォームはいくつかあり
それぞれのフォームに対応したボタン(クラス属性をs_btnとしています)があります。
s_btnのhref属性を#****としていて
その#****に対応したフォームをslideさせています。
わかりにくい説明で申し訳ありませんがお願いします。

616:613
11/04/21 08:43:31.64
>>614
jqueryのヴァージョンは1.5.2です。
よろしくお願いします。

617:デフォルトの名無しさん
11/04/21 08:51:19.58
以下のような場合、imgタグbrタグの閉じタグ手間にスラッシュが入らないのですが入れるにはどうすればいいですか?

$("<li />").addClass("lists")
.append($("<img />").attr("src", group$thumb[0].url)).append("<br />")
.append(item.title.$t).append("<br />")

実行する
<img src="xxx"><br>

こうしたい
<img src="xxx" /><br />

618:613
11/04/21 09:21:20.71
すいません
自己解決しました。
ドキュメント宣言してなかったのが原因みたいです
時間を割いてくださったかたありがとうございました。

619:デフォルトの名無しさん
11/04/21 21:37:02.19
>>615
なんかよくわからんコード書いてんなw
もうちょっと整理してみ
あとhrefのidはformタグにふってんの?
不具合が再現できるhtmlのソースも張ってよ

620:デフォルトの名無しさん
11/04/25 11:34:50.53
ポップアップウィンドウですが、下のwindow.openを
GreyBoxやlightboxを使った時のように表示したいと思います。
これを使え!や、こうすればよいの様なポインタをお願いします。

$('#i').change(function(){
window.open($(this).val(),'','width=150');
return false;
});

621:デフォルトの名無しさん
11/04/25 12:02:29.43
>>620
えーと… lightbox的なオーバーレイで、DIVなどのHTML要素か、IFRAMEを表示したい、ということでよいかな。
例えば、URLリンク(jquery.com) の Examples の iFramed Content の Demo みたいなことをしたいと?

そういうことができるjQueryプラグインはいくつもあるようなので、どれをお勧めしたものか…
「jQuery lightbox」か「jQuery overlay」で検索すれば、いろいろ出てくるよ。


622:621
11/04/25 12:12:08.19
あ、Thickboxは「メンテナンスされていないから別のをつかえ」って書いてあるね。
まぁ、いろいろあるから、どれを使うかはググって自分で判断してくれ。

623:デフォルトの名無しさん
11/05/02 00:20:38.40
ie9だとフェードできない時あるね

624:デフォルトの名無しさん
11/05/05 14:56:03.60
質問です
loadメソッドで別ファイルを読み込むのには成功したんですが、
別ファイルにjavascriptでウィジェットのようなものをふくんでいる場合にうまくウィジェットが表示されません
やはり非同期ポストバックじゃだめなのでしょうか?
例えばこういうウィジェットです
URLリンク(www.oricon.co.jp)

625:デフォルトの名無しさん
11/05/06 03:54:16.92
>>624
中見てないから分からんけど多分 document.write使ってんだろ
iframeの中に読み込んでやるかDOM構築終わる前にロードするかdocument.writeをオーバーライドするかってとこか

626:デフォルトの名無しさん
11/05/09 17:23:14.76
質問です
window.parent.document.getElementById('hoge');
↑をjQueryで表現して$('#hoge').hide();みたいにするにはどうすればいいのでしょうか?

627:デフォルトの名無しさん
11/05/09 17:25:49.65
1.6の更新内容をまとめて

628:デフォルトの名無しさん
11/05/13 12:35:03.43
$(this)とthisの違いがわかりません。

例えば、要素のインデックスを取得するindex()というメソッドですが
使い方は以下のように紹介されていることが多いですが、

$('.list').index(this);

上記サンプルの this を $(this) と置き換えても動くのですが、$(this)と指定するのは間違いでしょうか?
thisと$(this)ではどのような違いがあるのでしょうか?

よろしくお願い致します。

629:デフォルトの名無しさん
11/05/13 14:45:16.53
>>628
$(this)ってやると、jQueryの面白機能がついたオブジェクトに返信する
thisのままだと面白くない

630:デフォルトの名無しさん
11/05/13 14:53:20.23
>>629
ありがとうございます
thisオブジェクトを拡張してるということでしょうか?
ラッピングすることで新たなメンバーメソッドやメンバー変数などが追加されたみたいな

631:デフォルトの名無しさん
11/05/13 15:56:58.66
拡張してるというか変換してる
thisはJavaScriptのthis、DOMのthis
$(this)はjQueryオブジェクト

632:デフォルトの名無しさん
11/05/13 16:08:15.34
thisが本郷猛なら$()がライダーベルトだな

633:デフォルトの名無しさん
11/05/13 21:55:39.07
>>631
横からだけどそうだったのか
ただわかりやすいからってだけだと思ってた
あとthisってjQueryオブジェクトじゃなかったんだね

634:デフォルトの名無しさん
11/05/14 13:21:33.39
jQueryってこれフレームワーックって言うより、違う言語じゃね?

635:デフォルトの名無しさん
11/05/14 13:36:02.14
>>634
いやもろにjavascriptだろ
違う言語にはなってない

636:sage
11/05/14 17:32:27.74
jQuery1.6はやい。

637:デフォルトの名無しさん
11/05/15 03:25:25.77
jquery.1.4.2から1.5,1.6に変えると、3倍ぐらい遅くなった。

HTMLの書き換え処理なんだけど、遅くなった?

638:デフォルトの名無しさん
11/05/15 11:25:55.08
>>637
うん、だいぶ高速化されたよ

639:sage
11/05/15 13:24:06.56
高速化されましたよね。。
なぜ、遅くいのでしょう。pluginとバージョンの相性があるんですかね。

640:デフォルトの名無しさん
11/05/15 13:30:11.85
>>639
プラグ印使ってんの佳代
名に使ってんの蚊教えれ

641:sage
11/05/15 13:35:38.09
flexgridです。
URLリンク(flexigrid.info)

642:デフォルトの名無しさん
11/05/15 13:59:50.77
>>641
おいおい最新版使えよ

643:デフォルトの名無しさん
11/05/15 14:00:43.71
プラグインのコード読んでみたらいいじゃない

644:デフォルトの名無しさん
11/05/16 22:05:37.44
jqueryを学びはじめたばかりなのですが
$("div").find("span")と
$("div span")って
同じですか?どっちがいいんですか?
ほかにも同じようなことをいろんな書き方でできるような感じですが
とりあえず思い通りに動けばあんまり気にしなくてもいいんですか?

645:デフォルトの名無しさん
11/05/16 22:09:08.87
>>644
ちょっぴりだけ$("div span")の方が速い。

が! 10000回くらいループ計測して自分で速度を測るといいと思う。

646:644
11/05/16 22:18:12.92
>>645
どうもありがとうございますm(_ _)m

647:デフォルトの名無しさん
11/05/16 23:43:44.97
>>644
find()の使いどころは、たとえばhogeに何が入るか不定の時は、
hoge.find("span").~~~~
と書けるので便利

あるいは、
$("div").show().find("span").~~~
とずらずら書いたりとか

648:デフォルトの名無しさん
11/05/17 00:42:38.86
こうして何も知らない純粋な若者が騙されて餌食になるんだな

649:デフォルトの名無しさん
11/05/17 02:31:07.57
ちょっぴりだけ$("div > span")の方が速い。

650:デフォルトの名無しさん
11/05/17 08:52:20.94
その結果はdiv spanとは同じではないから当たり前だろ・・・



651:デフォルトの名無しさん
11/05/17 12:54:10.75
>>647>>649
どや顔でレスしてると思うとwwww

652:デフォルトの名無しさん
11/05/17 14:01:05.96
>>647の指摘ほ的確だと思うけどな

653:デフォルトの名無しさん
11/05/17 15:40:24.16
>>651
おまえかわいそう。

654:デフォルトの名無しさん
11/05/18 22:32:16.92
テキストノードをjQuery要素のまま値を取得したり設定したりするにはどう書けばいいですか?
↓うまくいきません
var str = $('#hoge').contents().not('[nodeType=1]').eq(0).text();
$('#hoge').contents().not('[nodeType=1]').eq(0).text('hoge');

↓jQuery要素からDOMに変換(?)するとnodeValueで取得したり設定したりできたんですが
var str = $('#hoge').contents().not('[nodeType=1]').get(0).nodeValue; //取得
$('#hoge').contents().not('[nodeType=1]').get(0).nodeValue = 'hoge'; //設定

655:デフォルトの名無しさん
11/05/19 05:58:41.74
var str = $('#hoge').text();
$('#hoge').text('hoge');

何がやりたいのかよくわからないけど、これじゃダメなの?

656:654
11/05/19 06:55:41.63
ああ、すみません、HTML側はたとえばこんな感じです
<div id="hoge">
aaaa
<p>bbbb</p>
cccc
</div>

657:654
11/05/20 07:52:12.02
やっぱりjQueryのままじゃ無理ですか?DOMにしてnodeValueで取得設定するしかないですか

658:デフォルトの名無しさん
11/05/20 10:57:26.50
bbbbの部分を取得したり書き換えたいってこと?


659:デフォルトの名無しさん
11/05/21 00:04:31.21
クリックしたら、ページを暗くして、画像や文章などを中央に表示して、
関係の無いところを押すと元に戻るみたいなのがありますが、
これのJqueryでのサンプルが載っているページをご存じないでしょうか?

660:デフォルトの名無しさん
11/05/21 10:28:33.86
lightboxでググれ

661:デフォルトの名無しさん
11/05/22 09:24:23.00
質問
なんでこのスレtechにあんの?

662:デフォルトの名無しさん
11/05/22 10:27:40.70
>>661
jQueryというかjavascriptをブラウザでしか使ったことが無いだろお前。

663:デフォルトの名無しさん
11/05/22 21:01:21.70
ブラウザで動かす以外に用途あるの?

664:デフォルトの名無しさん
11/05/22 21:18:06.81
>>663
wsh
デスクトップ ガジェット

でググれ


665:デフォルトの名無しさん
11/05/23 04:12:20.29
JScriptをガシガシ使ってますが?
で、なんでこの板にあるわけ?

666:デフォルトの名無しさん
11/05/23 06:44:05.13
jQuery歴2週間の>>1が単発質問で立てたスレだし、当初から板違いの指摘がある。
もったいないから使ってるだけ。
次スレはWEB制作板でもWebProg板でも移動させたらいい。

667:デフォルトの名無しさん
11/05/23 17:25:59.45
lightboxで中に画像ではなくHTMLを貼りつけられるようなの御存知ありませんか?

668:デフォルトの名無しさん
11/05/23 17:54:11.51
lightbox htmlでググれ

669:デフォルトの名無しさん
11/05/24 23:18:25.74
親画面と小画面でdatepicker(1ヶ月分をカレンダーのように表示)を
それぞれ同時に表示したいんですけど
datepickerの大きさをそれぞれ任意の大きさに変えるにはどうしたらいいですか?
cssで大きさを指定してしまうと、二つとも共通のcssを読み込んでるので
同じ大きさになってしまいます。
二つのdatepickerを自由に大きさを指定するにはどうしたら良いですか?
どなたか教えてください。

670:デフォルトの名無しさん
11/05/24 23:37:53.77
あげます

671:デフォルトの名無しさん
11/05/25 11:32:51.36
>>669
idつければいい

672:デフォルトの名無しさん
11/05/25 20:47:45.81
>>699
やり方はいろいろあると思うけど、
例えば、Datepicker全体をdivとかで囲んでしまって、
そのdivに親と子で違うIDを指定する

// 親
<div id="parent"><!-- ここはDatepicker --></div>

//子
<div id="parent"><!-- ここはDatepicker --></div>

で、スタイルシートのほうで

#parent #datepicker {
 // 親のスタイル
}

#child #datepicker {
 // このスタイル
}

とかすれば、大きさを指定している部分だけの修正で修正範囲も少ないとおもふ

673:デフォルトの名無しさん
11/05/26 19:32:15.44
<textarea id="hoge"></textarea>
--------------------------------------------
$("#hoge").text("hoge\nhoge")

クリックしたらテキストエリアの内容を書き変えたいんだけど、
書き換えたい文字列に改行コードが入ると unterminated string literal というエラーが出てうまくいかないお…

(´;ω;)どうすればいいのー

674:デフォルトの名無しさん
11/05/26 20:47:25.95
html()のほうかなー
試してないけど違ったらごめんね

675:デフォルトの名無しさん
11/05/26 21:19:33.05
>>674
(´;ω;)html()でも試した
Stringに改行コードが入ってるのがあかんらしい

676:デフォルトの名無しさん
11/05/26 22:21:38.06
$("#hoge").html("hoge<br />hoge") ならいくんじゃない?

677:デフォルトの名無しさん
11/05/26 23:40:50.91
1.2.6,1.5.2,1.6で試したがそんなのにはならんなー
ブラウザとjqueryのバージョンは何?あと再現できるコードを頼む

678:デフォルトの名無しさん
11/05/27 00:02:24.53
>>676
理由がわかりました

cgi から print "$(\"#hoge\").text(\"hoge\nhoge\")" で書き出してるわけだけど、
クライアントに返すソースが
$("#hoge").text("hoge
hoge")
になってた…

printする前に改行コードを\nから%0Aにリプレイスしてから、
javascript側のunescapeで改行コードに戻してやったらうまくいった

だがIEは失敗。なぜかラインフィードが半角スペースにデコードされとる
キャリッジリターンした時だけ何故かIEでもちゃんと改行される
IEしね

679:デフォルトの名無しさん
11/05/27 00:06:50.21
>>677
>>678 の通りです><
cgiからprintでjavascriptを書き出してるのが原因でした…
ちなみにjQueryは1.4.4つかってます

それにしてもIEは本当に問題児だ
だいっ嫌いこんな糞重くてバグだらけのブラウザ

680:デフォルトの名無しさん
11/05/27 00:24:31.14
%0Aより\\nとしてやる方がいいんじゃねーの?

681:デフォルトの名無しさん
11/05/27 01:04:32.17
\\n\\rじゃね?

682:デフォルトの名無しさん
11/05/27 01:26:48.08
|ω・`)おおうっ…そっちの方が美しいですね

>>680さんの通りにしたら、火狐、Chrome ではうまくいきましたが、
やはりIEでは改行されずに\nが半角スペースになってしまいました…

>>681さんはWindowsの改行コードですね
IEではうまく行きましたが、今度は火狐、Chrome が\rで改行、\nで改行と
認識してしまって二重改行になっちゃいました…
あれ?Windowsの改行コードって\\r\\nじゃなかった?と思いやり直したら
火狐、Chrome はうまくいって、IEは二行目以降の行の最初に半角スペースが入り失敗…

IE、火狐、Chrome できちんと改行されるのは\\rにした時だけでした
なぜだろうななんか気持ち悪い
IEがおかしいってのだけはわかる
あとは私の環境の問題かしら…

683:デフォルトの名無しさん
11/05/27 01:55:36.89
submitボタンが押されるとjqueryでtextareaを書き換えてからsubmitするようにしたのですが、
.clickで書き換え後val()をalertすると書き換わってるのですが、送信されるのは書き換わっていません。
どうするべきでしょうか?

684:デフォルトの名無しさん
11/05/27 03:10:17.39
textareaからフォーカスが離れたタイミングで書き換えておくか、データをAjaxで送信するか

685:デフォルトの名無しさん
11/05/27 16:32:25.17
|ω・`)>>682について勘違いをしてたので言及
ちゃんと調べてみたら、\\rでも\\nでも\\r\\nでもIEは改行されてなかった…

-------------------------------------------
<textarea id="hoge"></textarea>
-------------------------------------------
原因は$("#hoge").html(String)でStringに入ってるすべての改行コードがIEでは無視されてしまってた(.text()も同じ)
jQueryのhtml()がアカンのかと思い、document.getElementById("hoge").innerHTML(String)
で試したけど、やはりIEが改行コードを無視する

valueを書き変えたらどうかと試してみたら、
$("#hoge").attr("value", String) とすると改行がIEでもちゃんと反映された
他のブラウザもOK。

という事で解決しました
あどヴぁいす下さった皆さんどうも|ω・`ノシ

686:デフォルトの名無しさん
11/05/27 17:05:53.52
$("#hoge").val("foo\nbar\nbaz");

687:デフォルトの名無しさん
11/05/27 17:44:05.35
>>686
|ω・`)あぅ…無知ですた

688:654
11/05/30 08:06:22.13
>>658
>656のaaaaの部分だけ(やccccの部分だけ)をDOMにせずjQueryオブジェクトのまま取得したり書き換えたりしたいってことです
レスが遅れてすみません

689:デフォルトの名無しさん
11/05/30 16:48:44.24
うへ

690:デフォルトの名無しさん
11/05/30 17:01:57.42
>688
そういうときは変更の対象となる部分をspanの中に入れるから普通は困らないんだけど。
元々のHTMLは変更できないんだよね、きっと。


691:654
11/05/30 18:34:48.02
> 元々のHTMLは変更できないんだよね、きっと。
はい
HTMLは変更できません
つまりテキストノードと要素ノードが共存している場合のテキストノードはjQueryオブジェクトのまま取得・設定できないってことですか

692:デフォルトの名無しさん
11/05/31 13:03:23.96
<div id="aaa"><div id="bbb">test</div></div>

というHTMLに対して

$("#aaa").html()

で<div id="bbb">以下の要素のHTMLテキストが取れるけど
$("#aaa")から<div id="aaa">以下のHTMLテキストを直接取得する方法ってある?

親要素を作って$("#aaa")をappendして.html()で取得するって方法はできたけど
できれば直接取得したい。

693:デフォルトの名無しさん
11/05/31 13:24:13.76
>>692
Fx 対応してないけど outerHTML

694:デフォルトの名無しさん
11/05/31 17:58:05.46
>>693
サンクス
jQueryでブラウザ依存吸収してほしいね。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch