|
それなら 直で addFilter($(this).val(), '', []); を実行したらいいってことだね。 > 見ていただき、ありがとうございます。 > > JQueryはほとんど理解できていないので間違っているかもしれませんが、 > この部分がイベントで実行されると思います。 > > $('#add_filter_select').change(function() { > > addFilter($(this).val(), '', []); > > 実際の動作は、「フィルタ追加」のセレクトボックスで選択したものに > 応じて、新たにセレクトボックスが表示されるというものです。 > '#add_filter_select'に値を入れることはできたのですが、表示される > はずのセレクトボックスが表示されなかったので、changeイベントが > 実行されていないためと思いました。 > > > > > ジャッカルのメッセージ(#2)への返事 > > > どれがJQueryのイベントコード? > > > > > > > Redmineというプロジェクト管理ツールから、登録されているチケットをVBAで取得しようとしています。取得処理の中で、セレクトボックスを選択した後でJQueryのchangeイベントが発生する箇所があるのですが、イベントの起動ができません。本掲示板の過去スレッドに出ていた方法も試したのですが、うまくいきませんでした。 > > > みなさんの知恵をお借りしたいです。よろしくお願いします。 > > > > > > <対象ページの構造> > > > 1)HTMLの内容 > > > ★で要素を選択すると、要素に応じたセレクトボックスが表示されます。 > > > td class="add-filter" > > > label for="add_filter_select"?フィルタ追加 /label > > > select id="add_filter_select".../select★ > > > /td > > > > > > 2)イベントの確認 > > > ブラウザでselect id="add_filter_select"でEvent Listeners を > > > 確認すると、以下の通りでした。 > > > ▼change > > > ▼select#add_filter_select > > > application.js?1396112202:78 > > > useCapture: true > > > passive: false > > > once: false > > > ▼handler: f() > > > ?[[scopes]]: Scopes[1] > > > [[FunctionLocation]]: <unknown> > > > ?__proto__: f() > > > ?prototype: {constructor: f} > > > name: "" > > > length: 0 > > > caller: null > > > arguments: null > > > guid: 24 > > > > > > handler の後のf() にマウスを乗せると、 > > > function() { addfilter($this).val(), '',[]; } > > > と表示されました。 > > > > > > 3)ソースの確認 > > > handlerのf()で"Show Function Definition"を実行すると > > > 以下のソールが表示・選択されました。 > > > function initFilters() { > > > $('#add_filter_select').change(function() { > > > addFilter($(this).val(), '', []); > > > }); > > > > > > <試したこと> > > > 1)以下の方法では、値がセレクトボックスに表示されましたがイベント > > > は発生しませんでした。 > > > Dim evt As Object > > > Set evt = objIE.document.createEvent("HTMLEvents") > > > evt.initEvent "change", True, False > > > > > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > > > objIE.document.getElementById("add_filter_select").dispatchEvent evt > > > > > > 2)以下の方法も、値がセレクトボックスに表示されただけでイベント発生せず。 > > > Dim evt As Object > > > Set evt = objIE.document.createEvent("HTMLEvents") > > > evt.initEvent "change", True, False > > > > > > With objIE.document.getElementById("add_filter_select") > > > .Value = "tracker_id" > > > .dispatchEvent evt > > > End With > > > > > > 3)JQueryを直接起動する(つもり。JavaScriptやJQueryは良く分から > > > ないので、Webに出ていたものを例にやってみました) > > > これも、値は表示されましたがイベントは起きませんでした。 > > > > > > Dim evt As Object > > > Set evt = objIE.document.createEvent("HTMLEvents") > > > evt.initEvent "change", True, False > > > > > > objIE.document.getElementById("add_filter_select").Value = "tracker_id" > > > objIE.navigate "JavaScript:addfilter('add_filter_select')" > > > > > > 以上です。 |
↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^
ExcelのVBA初心者入門↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^
こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。
こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。