From 43b808a9d799d9b08dca5790722d1b51196e7e25 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Thu, 1 Jan 2015 09:54:18 -0500 Subject: [PATCH] Fixes #6672: `yii\bootstrap\Dropdown` should register client event handlers --- CHANGELOG.md | 2 +- Dropdown.php | 1 + Widget.php | 12 +++++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1e11d6..33f1f65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ Yii Framework 2 bootstrap extension Change Log 2.0.2 under development ----------------------- -- no changes in this release. +- Bug #6672: `yii\bootstrap\Dropdown` should register client event handlers (qiangxue) 2.0.1 December 07, 2014 diff --git a/Dropdown.php b/Dropdown.php index 166b367..a4ad43b 100644 --- a/Dropdown.php +++ b/Dropdown.php @@ -60,6 +60,7 @@ class Dropdown extends Widget { echo $this->renderItems($this->items, $this->options); BootstrapPluginAsset::register($this->getView()); + $this->registerClientEvents(); } /** diff --git a/Widget.php b/Widget.php index 6e6bc85..641f640 100644 --- a/Widget.php +++ b/Widget.php @@ -71,12 +71,22 @@ class Widget extends \yii\base\Widget $view->registerJs($js); } + $this->registerClientEvents(); + } + + /** + * Registers JS event handlers that are listed in [[clientEvents]]. + * @since 2.0.2 + */ + protected function registerClientEvents() + { if (!empty($this->clientEvents)) { + $id = $this->options['id']; $js = []; foreach ($this->clientEvents as $event => $handler) { $js[] = "jQuery('#$id').on('$event', $handler);"; } - $view->registerJs(implode("\n", $js)); + $this->getView()->registerJs(implode("\n", $js)); } } }