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

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

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

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

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

Q&A

解決済

2回答

1625閲覧

[GAS] JSの書き出し結果に対するクリックイベントが発動しない

HannaHanna

総合スコア8

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

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

0グッド

0クリップ

投稿2018/07/27 10:43

編集2018/07/27 12:43

GAS初心者です。
社内サポートの一環で、商品検索後、それぞれの結果から更に詳細呼び出しするアプリを作成中です。
詳細は(5-7列程の小さなテーブルなので)モーダルウィンドウで表示しようと考えています。

検索結果からクリックで関数を呼び出したいのですが、書き出した検索結果に対してクリックイベントがうまく発動しません。

eventEndにて検索結果のの配列第一行目に、modal-openのクラスをつけています。
以下のコードでなんとかPC上では反応するのですが、携帯端末(ipad,iphone)上で無反応です。(safariとchrome両方だめでした)

function eventEnd(searchresult) { // スプレッドシートから取得した配列を元にテーブルを構成 var td = ''; for (var i = 0, l = searchresult.length; i < l; i++) { var v = searchresult[i]; td += '<tr>\n<td><a class="modal-open">' + v[0] + '</a></td>\n<td>' + v[1] + '</td>\n<td>' + v[2] + '</td>\n<td>' + v[3] + '</td>\n<td>' + v[4] + '</td>\n<td>' + v[5] + '</td>\n<td>' + v[6] + '</td>\n</tr>\n'; } $('#resultRows').html(td); } $(document).ready(function(){ //これをつけると何故かPC(Chrome)上では動きました $('body').on('click','.modal-open',function(){ var itemCode = $(this, "span").text(); google.script.run.withSuccessHandler(PEnd).SelectPO(itemCode + ''); }); }); //こちらも試してみたのですがうまく行きませんでした。 //最初からHTML上に表示してあるものに対してはこれで動くのですが。 $('.modal-open').on('click', function() {}) 

そもそもの定義の付与の仕方が悪いのか、それとも携帯端末では推奨できないのか・・・。

何卒ご教授の程宜しくお願いいたします。

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

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

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

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

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

m.ts10806

2018/07/27 12:06

質問編集画面タイトル横にある「初心者アイコン」をご活用ください。「初心者」と質問で書くよりも伝わりますし、質問一覧に表示されるのでわかりやすくなります。
m.ts10806

2018/07/27 12:06

プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
m.ts10806

2018/07/27 12:07

「Google Apps Script」もタグに追加しておいてください
HannaHanna

2018/07/27 12:44

変更いたしました。色々と至らず申し訳ありません。
guest

回答2

0

自己解決

申し訳ありません、解決しました。
HTMLの定義エリアミスでした・・・。
追加追加で書いて行っているうちに<div>を閉める場所がおかしくなってしまったようです。
ryojuさん、確認方法を教えていただきありがとうございました。

投稿2018/07/28 07:56

HannaHanna

総合スコア8

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

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

0

まずは携帯端末にてコードがどこまで実行されているかご確認くださいませ。

以下は、確認方法の一例としてalertを各行に追加しています。

JavaScript

1function eventEnd(searchresult) { // スプレッドシートから取得した配列を元にテーブルを構成 2 alert('eventEnd'); 3 var td = ''; 4 for (var i = 0, l = searchresult.length; i < l; i++) { 5 var v = searchresult[i]; 6 td += '<tr>\n<td><a class="modal-open">' + v[0] + '</a></td>\n<td>' + v[1] + '</td>\n<td>' + v[2] + '</td>\n<td>' + v[3] + '</td>\n<td>' + v[4] + '</td>\n<td>' + v[5] + '</td>\n<td>' + v[6] + '</td>\n</tr>\n'; 7 } 8 $('#resultRows').html(td); 9 } 10 11alert('add ready event'); 12$(document).ready(function(){ //これをつけると何故かPC(Chrome)上では動きました 13 alert('ready'); 14 $('body').on('click','.modal-open',function(){ 15 alert('body click'); 16 var itemCode = $(this, "span").text(); 17 google.script.run.withSuccessHandler(PEnd).SelectPO(itemCode + ''); 18 }); 19}); 20 21//こちらも試してみたのですがうまく行きませんでした。 22//最初からHTML上に表示してあるものに対してはこれで動くのですが。 23$('.modal-open').on('click', function() {}) 

投稿2018/07/28 01:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

HannaHanna

2018/07/28 07:15

具体的な確認方法をありがとうございます。 一つ一つ確認してみました所、 $(document).ready(function(){ これは無くてもPC上で動くことが分かりました・・・。 ただ、 $('body').on('click','.modal-open',function(){ が携帯端末上で動かないようです。 HTML上の初期表示文でもテストしてみましたがアラートが出ませんでした。 $('.modal-open').on('click', function() {}) は初期表示のみPC、携帯端末共に反応します。 clickの書き方が悪いのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問