質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1690閲覧

jquery.pep.jsで生成した要素にonでフォーカスをあてたい

kihokutarou

総合スコア59

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/03/27 08:28

編集2018/03/27 10:34

jquery.pep.js公式サイト
jquery.pep.jsのappendにて生成した要素に関数を充てたいと思っています。

javascript

1$(function(){ 2 $("#btn1").click(function(){ 3 $("div#parent").append('<div id="test" class="pep peppable"><img src="img/1.png" alt="1の画像" height="35" style="position: absolute; z-index: 3;"></div>'); 4 });

これによって生成されたdiv内のpngを動かしたく、まずは位置情報をコンソールに表示。

javascript

1$(function(){ 2 $('.pep pable').pep({ 3 drag: function(ev, obj){ 4 console.log(ev); 5 console.log(obj.activeDropRegions); 6 }, 7 }); 8});

と思ったのですが、生成された要素はフォーカスが当たらないようです。はじめからある要素は、いわゆるonload時に読み込まれているようでコンソール出力はできます。
そこで、つまりは下のようなことだろうと推測し、

javascript

1$(#test).on("click",".peppable",function(){ 2 alert("あああああ"); 3});

とすると生成された要素をクリックで反応がありました。イメージとしてはonでマウントさせる感じ?
しかしこれをドラッグ時に位置情報をコンソールに、という記述にできません。どのようにするか教えていただけるとありがたいです。
最終的には、

javascript

1$(function(){ 2 $('.peppable').pep({ 3 droppable: '#gomi', 4 overlapFunction: false, 5 useCSSTranslation: false, 6 drag: function(ev, obj){ 7 console.log(ev); 8 console.log(obj.activeDropRegions); 9 }, 10 11 //マウス離した時 12 stop: function(ev, obj){ 13 if(obj.activeDropRegions.length > 0){ 14 $(ev.target).remove(); 15 } 16 } 17 }); 18});

のようにgomiというIDにドロップして削除しようと思っています。いろいろと試していてIDとクラスが点在し読みにくいと思います。申し訳ない。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/03/27 10:04

プラグイン/ライブラリは公式配布サイトのURLを質問文に追記ください。(URLにはリンクを張ることができます)
guest

回答1

0

ベストアンサー

appendの次の行にに $('.pep.pable').pep({/*中身省略*/}); を入れれば動くと思います。多重に設定してしまう可能性があるので、その場合 設定した要素を省いて取得するなどすればよいと思います。

投稿2018/03/27 12:22

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kihokutarou

2018/03/28 05:24

ご回答ありがとうございます。 $(function(){ $("#btn1").click(function(){ $("div#parent").append('<div id="test" class="pep peppable"><img src="img/1.png" alt="1のブロック" height="35" style="position: absolute; z-index: 3;"></div>'); $('.pep pable').pep({ drag: function(ev, obj){ console.log(ev); console.log(obj.activeDropRegions); }, }); }); まず、生成したと同時にコンソールログを出す記述なのかと思い上記を試しましたが動きませんでした。 次に、生成した後に存在自体を認識させるのかと思い以下を試しましたが動きませんでした。 $(function(){ $("#btn1").click(function(){ $("div#parent").append('<div id="test" class="pep peppable"><img src="img/1.png" alt="1のブロック" height="35" style="position: absolute; z-index: 3;"></div>'); $('.peppable').pep({ constrainToParent: true , debug: false}); }); 何か私が勘違いしていたり見落としがあれば教えてください。
kei344

2018/03/28 05:26

× $('.pep pable') ○ $('.pep.pable')
kihokutarou

2018/03/28 07:58

ご回答ありがとうございます。 上述、下述ともに $('.pep.pable')としましたが変化がありませんでした。
kihokutarou

2018/03/28 08:51

ありがとうございます。期待通りの動きでした。 もしよければ少し教えてください。なかなか参考サイトがなくて・・・。 append時に生成後の処理も同時に記述しておけばよいということはわかりました。そのうえで、ご指摘の $('.pep.peppable').pep({ 以下略 の '.pep.peppable' の意味が分かりません。「pepを適用する要素の中のpeppableというクラスを指定」という認識でよいのでしょうか。
kei344

2018/03/28 09:19

> '.pep.peppable' pep と peppable がclassに設定された要素を指定するCSSセレクタです。 【CSS 複数のセレクタを指定する/絞り込むサンプル |】 https://itsakura.com/css-multi-selector
kihokutarou

2018/03/28 09:24

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問