Skip to content

Commit d0894e8

Browse files
committedJul 9, 2016
release 'paste' event when dialog is closed. related with $1920.
1 parent 18bbe07 commit d0894e8

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed
 

‎src/js/bs3/module/LinkDialog.js

+22-8
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ define([
4949
});
5050
};
5151

52+
/**
53+
* toggle update button
54+
*/
55+
this.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {
56+
ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
57+
};
58+
5259
/**
5360
* Show link dialog and set event handlers on dialog controls.
5461
*
@@ -72,24 +79,31 @@ define([
7279

7380
$linkText.val(linkInfo.text);
7481

75-
$linkText.on('input paste', function () {
76-
ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
82+
var handleLinkTextUpdate = function () {
83+
self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
7784
// if linktext was modified by keyup,
7885
// stop cloning text from linkUrl
7986
linkInfo.text = $linkText.val();
87+
};
88+
89+
$linkText.on('input', handleLinkTextUpdate).on('paste', function () {
90+
setTimeout(handleLinkTextUpdate, 0);
8091
});
8192

82-
$linkUrl.on('input paste', function () {
83-
ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
93+
var handleLinkUrlUpdate = function () {
94+
self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
8495
// display same link on `Text to display` input
8596
// when create a new link
8697
if (!linkInfo.text) {
8798
$linkText.val($linkUrl.val());
8899
}
89-
}).val(linkInfo.url).trigger('focus');
100+
};
90101

91-
ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
102+
$linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {
103+
setTimeout(handleLinkUrlUpdate, 0);
104+
}).val(linkInfo.url).trigger('focus');
92105

106+
self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
93107
self.bindEnterKey($linkUrl, $linkBtn);
94108
self.bindEnterKey($linkText, $linkBtn);
95109

@@ -110,8 +124,8 @@ define([
110124

111125
ui.onDialogHidden(self.$dialog, function () {
112126
// detach events
113-
$linkText.off('input keypress');
114-
$linkUrl.off('input keypress');
127+
$linkText.off('input paste keypress');
128+
$linkUrl.off('input paste keypress');
115129
$linkBtn.off('click');
116130

117131
if (deferred.state() === 'pending') {

0 commit comments

Comments
 (0)
Please sign in to comment.