質問 > フロント機能 > イベント発生のタイミングについて |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
bitterice |
投稿日時: 2011/7/26 11:43
対応状況: −−−
|
半人前 登録日: 2011/7/26 居住地: 投稿: 13 |
イベント発生のタイミングについて 最近eccubeをさわり始めた初心者です。
現在、商品詳細ページの動きを見ているのですが、 規格が2つある商品で規格1を選択すると、規格2のリストが 表示される様になりますが、どのタイミング(何処)で値の セットが行われているのでしょうか? |
habu |
投稿日時: 2011/7/26 12:39
対応状況: −−−
|
長老 登録日: 2006/9/15 居住地: 投稿: 282 |
Re: イベント発生のタイミングについて bitterice様
html/js/products.js の、 setClassCategories関数で行われています。 規格1を選択するとsetClassCategories関数が呼び出される様には、 同じファイルの以下の部分で設定されています。
|
bitterice |
投稿日時: 2011/7/28 12:08
対応状況: 確認中
|
半人前 登録日: 2011/7/26 居住地: 投稿: 13 |
Re: イベント発生のタイミングについて habu様
回答頂きありがとうございます。 products.jsを確認しました。 確かに、changeイベントで何かしていそうなのは確認できました。 が、detail.tpl,SC_Page_Products_Detail.phpを見ても理解できていないのですが、 どの記述をもって.changeイベントの発生により、.js側に処理が移るのでしょうか? |
468 |
投稿日時: 2011/8/6 3:40
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: イベント発生のタイミングについて こんばんわ。
商品詳細の規格2をセットする処理について、 私なりに理解している内容を説明させてください。 まず、規格2のデータですが、商品詳細ページを表示する際、 LC_Page_Products_Detail.php 134行目の処理で、 $this->tpl_javascriptに規格情報をセットしております。 続いて135行目で$this->tpl_javascriptにlnOnLoad関数(Javascript)のソースコードを追加します。 136行目で$this->tpl_onloadにonLoadイベント(Javascript)で実行するソースコードをセットします。 上記の変数は、site_frame.tplのheadタグ内に配置されるようになっております。 (PHPでJavascriptのデータやソースコードを作り出しています。) 次に商品詳細ページがブラウザに読込まれる際、 products.jsがブラウザに読込まれ、 1〜21行目の$(function() { 〜 });までの処理が実行されます。 (上記の記述は、JQueryのHTMLロード後に実行される処理の記述方法です。) この処理の中にある、以下の記述で、 $('select[name=classcategory_id1]').change(function(){****}); $('select[name=classcategory_id2]').change(function(){****}); selectタブでname属性がclasscategory_id1、classcategory_id2のエレメントの onchangeイベントに処理をセットしています。 (onchange=""の記述と意味は一緒です。こちらもJQueryの記述方法です。) products.jsの9行目にsetClassCategories(****);の記述がありますので、 規格1プルダウンを変更したタイミングで、規格2プルダウンの選択肢がセットされます。 ブラウザのソースの表示で、ブラウザに読込まれたHTMLソースを見ると、 出来上がったJavascriptのソースが確認できますので、 理解しやすいかもしれません。 (私はソースの表示から処理を追っていきますので・・・) ここはEC-CUBEの中でも分かりづらい部分かと思います。 |
bitterice |
投稿日時: 2011/8/10 11:23
対応状況: 解決済
|
半人前 登録日: 2011/7/26 居住地: 投稿: 13 |
Re: イベント発生のタイミングについて 468様
お礼が遅くなりましたが、詳しく説明頂きありがとうございました。 >selectタブでname属性がclasscategory_id1、classcategory_id2のエレメントのonchangeイベントに処理をセットしています。 というのが理解に苦しんだ点でしたがすっきりしました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |