@@ -130,47 +130,49 @@ module.exports = function() {
130
130
if ( hasRunBtn ) {
131
131
var btn = document . createElement ( "button" ) ;
132
132
btn . innerHTML = "Run" ;
133
- btn . addEventListener ( 'click' , function ( ) {
134
-
135
- if ( ! demoWrapper && matches . call ( env . element . parentNode , 'pre' ) ) {
136
- var language = env . language ;
137
- var text = env . code ;
138
- var data = types [ language ] ( text ) ;
139
- if ( data . js ) {
140
- data . js = data . js . trim ( ) ;
141
- }
142
- if ( data . html ) {
143
- data . html = data . html . trim ( ) ;
133
+ document . body . addEventListener ( 'click' , function ( ev ) {
134
+ ev . stopPropagation ( ) ;
135
+ if ( ev . target === btn ) {
136
+ if ( ! demoWrapper && matches . call ( env . element . parentNode , 'pre' ) ) {
137
+ var language = env . language ;
138
+ var text = env . code ;
139
+ var data = types [ language ] ( text ) ;
140
+ if ( data . js ) {
141
+ data . js = data . js . trim ( ) ;
142
+ }
143
+ if ( data . html ) {
144
+ data . html = data . html . trim ( ) ;
145
+ }
146
+ if ( data ) {
147
+ cleanCodePenData ( data ) ;
148
+ if ( window . CREATE_CODE_PEN ) {
149
+ CREATE_CODE_PEN ( data ) ;
150
+ } else {
151
+ createCodePen ( data ) ;
152
+ }
153
+ } else {
154
+ console . warn ( 'Unable to create a codepen for this demo' ) ;
155
+ }
144
156
}
145
- if ( data ) {
146
- cleanCodePenData ( data ) ;
157
+ if ( demoWrapper && matches . call ( demoWrapper , '.demo_wrapper' ) ) {
158
+ var htmlCode = demoWrapper . querySelector ( '[data-for=html] code' ) ;
159
+ var htmlText = htmlCode ? htmlCode . textContent . trim ( ) : '' ;
160
+ var jsCode = demoWrapper . querySelector ( '[data-for=js] code' ) ;
161
+ var jsText = jsCode ? jsCode . textContent . trim ( ) : '' ;
162
+ var cssText = getStylesFromIframe ( demoWrapper . querySelector ( 'iframe' ) ) ;
163
+ var codePen = {
164
+ html : htmlText ,
165
+ js : jsText ,
166
+ js_module : true ,
167
+ editors : '1011' ,
168
+ css : cssText . trim ( )
169
+ } ;
170
+ cleanCodePenData ( codePen ) ;
147
171
if ( window . CREATE_CODE_PEN ) {
148
- CREATE_CODE_PEN ( data ) ;
172
+ CREATE_CODE_PEN ( codePen ) ;
149
173
} else {
150
- createCodePen ( data ) ;
174
+ createCodePen ( codePen ) ;
151
175
}
152
- } else {
153
- console . warn ( 'Unable to create a codepen for this demo' ) ;
154
- }
155
- }
156
- if ( demoWrapper && matches . call ( demoWrapper , '.demo_wrapper' ) ) {
157
- var htmlCode = demoWrapper . querySelector ( '[data-for=html] code' ) ;
158
- var htmlText = htmlCode ? htmlCode . textContent . trim ( ) : '' ;
159
- var jsCode = demoWrapper . querySelector ( '[data-for=js] code' ) ;
160
- var jsText = jsCode ? jsCode . textContent . trim ( ) : '' ;
161
- var cssText = getStylesFromIframe ( demoWrapper . querySelector ( 'iframe' ) ) ;
162
- var codePen = {
163
- html : htmlText ,
164
- js : jsText ,
165
- js_module : true ,
166
- editors : '1011' ,
167
- css : cssText . trim ( )
168
- } ;
169
- cleanCodePenData ( codePen ) ;
170
- if ( window . CREATE_CODE_PEN ) {
171
- CREATE_CODE_PEN ( codePen ) ;
172
- } else {
173
- createCodePen ( codePen ) ;
174
176
}
175
177
}
176
178
} ) ;
0 commit comments