動的アクションのTrueアクションをJavaScriptでコーディングする際に、this.triggeringElement、this.browserEventなどが使用できます。この使い方を紹介します。
アクションとしてJavaScriptコードの実行を選択したときの、設定のコードのオンライン・ヘルプには、以下の記載があります。
- this.triggeringElement
- 動的アクションをトリガーした要素のDOMオブジェクトへの参照。
- this.affectedElements
- 影響を受けるすべての要素を含むjQueryオブジェクト。
- this.action
- アクション名と追加の属性値などの詳細を含むアクション・オブジェクト。
- this.browserEvent
- イベントをトリガーしたイベントのイベント・オブジェクト。ノート: ロード時、これは'load'と同等になります。
- this.data
- イベント・ハンドラから渡すことができるオプションの追加データ。
<script type="text/javascript">
apex.da.initDaEventList = function(){
apex.da.gEventList = [{
$s("P1_CELL_VALUE",$v(this.triggeringElement));
},
}
</script>
/**
* doAction function
* Executes the action (pAction) on certain elements (pSelector)
* @ignore
*/
da.doAction = function( pContext, pSelector, pAction, pDynamicActionName, pResumeCallback ) {
var lContext = {
triggeringElement : pContext.triggeringElement,
affectedElements : $( pSelector, apex.gPageContext$ ),
action : pAction,
browserEvent : pContext.browserEvent,
data : pContext.data,
resumeCallback : pResumeCallback
};
// Call the javascript function if one is defined and pass the lContext object as this
if ( pAction.javascriptFunction ) {
// Log details of dynamic action fired out to the console (only outputs when running in debug mode)
apex.debug.log( "Dynamic Action Fired: " + pDynamicActionName + " (" + pAction.action + ")", lContext );
return pAction.javascriptFunction.call( lContext );
}
}; // doAction
console.log(this.triggeringElement);
$s("P1_CELL_VALUE",$v(this.triggeringElement));
let elem = this.affectedElements[0];
$s(elem,this.triggeringElement.value);