質問編集履歴

3

追記の文章が読みづらかったので修正

2022/12/15 01:41

投稿

nya-3
nya-3

スコア27

test CHANGED
File without changes
test CHANGED
@@ -309,7 +309,7 @@
309
309
  3.「果物」を選択すると、以下のように表示される
310
310
     検索結果:1件見つかりました。果物といえばなんでしょう
311
311
 
312
- #2022/12/15 追記
312
+ ### 2022/12/15 追記
313
313
  無事、クリック時に検索が出来るようになりました!
314
314
  全体ソースを更新しました。
315
315
  ありがとうございました!

2

選択時に絞り込みが出来るようになりました、ありがとうございます!ただ、選択時にオートコンプリートのメニューが消えません…。

2022/12/15 00:49

投稿

nya-3
nya-3

スコア27

test CHANGED
File without changes
test CHANGED
@@ -152,12 +152,12 @@
152
152
  });
153
153
  ```
154
154
 
155
- ### 試したこと
155
+ ### 試したこと
156
156
 
157
157
  selectで追加すれば動作するのかと思ったのですが
158
158
  全然関係ない行にエラーが出たりして動作しません。
159
159
 
160
- ###現段階の最終ソース
160
+ ### 現段階の最終ソース
161
161
 
162
162
  ```HTML
163
163
  <HTML>
@@ -274,9 +274,10 @@
274
274
  },
275
275
  select: function(event, ui) {
276
276
  console.log(ui.item.value);
277
- this.value = ui.item.value;
277
+ this.value = ui.item.value;
278
+ searchWord.apply(this, arguments);
278
- searchWord;
279
+ searchWord();
279
- return false;
280
+ return false;
280
281
  }
281
282
  });
282
283
 
@@ -285,7 +286,7 @@
285
286
  </html>
286
287
  ```
287
288
 
288
- ###現段階で困っていること
289
+ ### 現段階で困っていること
289
290
  参考:http://tk2-207-13211.vs.sakura.ne.jp/2015/09/335/
290
291
 
291
292
  「$('#search-text').on('change', searchWord);」を追加したら
@@ -307,3 +308,16 @@
307
308
  2.「果物」という候補が表示される
308
309
  3.「果物」を選択すると、以下のように表示される
309
310
     検索結果:1件見つかりました。果物といえばなんでしょう
311
+
312
+ #2022/12/15 追記
313
+ 無事、クリック時に検索が出来るようになりました!
314
+ 全体ソースを更新しました。
315
+ ありがとうございました!
316
+
317
+ あとは、クリック時にオートコンプリートをCloseしたいのです。
318
+ 普通はクリック時にオートコンプリートのリストが非表示になると思いますが
319
+ なぜか閉じてくれません。
320
+ $("#search-text").autocomplete("close");
321
+ これでクローズイベントを呼べると思ったのですが呼べないみたいですね。
322
+ 1時間ほど調べましたが、特に状況変わらずです。
323
+ 原因について思い当たることがありましたら教えて下さいorz

1

最新のソースと、今困っていることを詳細に記載しました

2022/12/14 07:56

投稿

nya-3
nya-3

スコア27

test CHANGED
File without changes
test CHANGED
@@ -157,3 +157,153 @@
157
157
  selectで追加すれば動作するのかと思ったのですが
158
158
  全然関係ない行にエラーが出たりして動作しません。
159
159
 
160
+ ###現段階の最終ソース
161
+
162
+ ```HTML
163
+ <HTML>
164
+ <Head>
165
+ <link rel="stylesheet" href="style.css"/>
166
+ <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
167
+ <script src="jquery-3.6.0.min.js"></script>
168
+ <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
169
+ <link rel="stylesheet" style="text/css" href="lightbox.css">
170
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
171
+ <html manifest="cache-manifest.appcache">
172
+ <meta http-equiv="Cache-Control" content="no-store">
173
+ </Head>
174
+ <title>テスト</title>
175
+ <body>
176
+ <div style="text-align: center;">
177
+  <div class="search-area">
178
+   <form>
179
+    <input type="text" id="search-text" placeholder="検索ワードを入力">
180
+   </form>
181
+   <div class="search-result">
182
+    <div class="search-result__hit-num"></div>
183
+    <div id="search-result__list"></div>
184
+   </div>
185
+  </div>
186
+ </div>
187
+
188
+ <div class="qa-list mts">
189
+ <h2 id="H1">良くある質問</h2>
190
+ <dl class="qa">
191
+ <dt id="H1_Q1">テスト①</dt>
192
+ <dd>テスト①、テスト案件
193
+ <br>テストによるテストのためのテスト
194
+ <div class="kensaku">テスト①
195
+ テスト①、テスト案件 テストによるテストのためのテスト</div>
196
+ <br></dd>
197
+ <dt id="H1_Q2">果物といえばなんでしょう</dt>
198
+ <dd>果物と言えばいちごです。、
199
+ <br>クリスマスになると値上がりする気がします。
200
+ <br>
201
+ <div class="kensaku">果物といえばなんでしょうか?
202
+ 果物と言えばいちごです。
203
+ クリスマスになると値上がりする気がします。
204
+ </div>
205
+ <br></dd>
206
+ <dt id="H1_Q3">今年はボッチクリスマスですか?</dt>
207
+ <dd>はい、ボッチクリスマスの予定です。
208
+ <br>美味しいケーキでも買おうかと思っています。
209
+ <br><br>
210
+ <div class="kensaku">今年はボッチクリスマスですか?
211
+ はい、ボッチクリスマスの予定です。
212
+ 美味しいケーキでも買おうかと思っています。</div>
213
+ <br></dd>
214
+ </div>
215
+
216
+ <script>
217
+ var words = [
218
+ { label: "果物", kana: "くだもの"},
219
+ { label: "電気", kana: "でんき"},
220
+ ];
221
+
222
+ //$(function () {
223
+
224
+ var searchWord = function(){
225
+ var searchResult,
226
+ searchText = $(this).val(),
227
+ targetText,hitNum,targetID,targetTitle;
228
+
229
+ searchResult = [];
230
+ searchResultTitle = [];
231
+ searchResultID = [];
232
+
233
+ $('#search-result__list').empty();
234
+ $('.search-result__hit-num').empty();
235
+
236
+ if (searchText != '') {
237
+ $('.qa-list dt').each(function(e) {
238
+ targetText = $(this).next().children('div').text();
239
+ targetTitle = $(this).text();
240
+ targetID = $(this).attr("id");
241
+
242
+ searchText=searchText.toString().replace(" "," ");
243
+ let MyText = searchText.split(' ');
244
+
245
+ if (MyText.every(x=>targetText.indexOf(x)!=-1)) {
246
+ searchResult.push(targetText);
247
+ searchResultTitle.push(targetTitle);
248
+ searchResultID.push(targetID);
249
+ }
250
+ });
251
+
252
+ for (var i = 0; i < searchResult.length; i ++) {
253
+ $('#search-result__list').append('<a href="#' + searchResultID[i] + '">' + searchResultTitle[i] + '</a><br>' );
254
+ }
255
+ hitNum = '<span>検索結果</span>:' + searchResult.length + '件見つかりました。';
256
+ $('.search-result__hit-num').append(hitNum);
257
+ }
258
+ };
259
+
260
+ $('#search-text').on('change', searchWord);
261
+ $('#search-text').on('input', searchWord);
262
+
263
+
264
+ $("#search-text").autocomplete({
265
+ source: function (request, response) {
266
+ var list = [];
267
+ list = words.filter(function (word) {
268
+ return (
269
+ word.label.indexOf(request.term) === 0 ||
270
+ word.kana.indexOf(request.term) === 0
271
+ );
272
+ });
273
+ response(list);
274
+ },
275
+ select: function(event, ui) {
276
+ console.log(ui.item.value);
277
+ this.value = ui.item.value;
278
+ searchWord;
279
+ return false;
280
+ }
281
+ });
282
+
283
+ </script>
284
+ </body>
285
+ </html>
286
+ ```
287
+
288
+ ###現段階で困っていること
289
+ 参考:http://tk2-207-13211.vs.sakura.ne.jp/2015/09/335/
290
+
291
+ 「$('#search-text').on('change', searchWord);」を追加したら
292
+ 以下の【実際の動作】になりました。
293
+
294
+ 【実際の動作】
295
+ 1.「く」と入力する
296
+ 2.「果物」という候補が表示される
297
+ 3.「果物」を選択する
298
+   (選択してもサジェストの枠が消えない)
299
+ 4.ほかのものにフォーカスを当てる(関係ないところをクリックする)
300
+ 5.以下のように表示される
301
+   検索結果:1件見つかりました。果物といえばなんでしょう
302
+
303
+ でも希望の動作とは違います。
304
+
305
+ 【希望の動作】
306
+ 1.「く」と入力する
307
+ 2.「果物」という候補が表示される
308
+ 3.「果物」を選択すると、以下のように表示される
309
+    検索結果:1件見つかりました。果物といえばなんでしょう