Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
8bb0b69e
Commit
8bb0b69e
authored
Dec 28, 2015
by
Marcel Stör
Browse files
Experiment with MutationObserver
parent
eca92afd
Changes
1
Show whitespace changes
Inline
Side-by-side
docs/js/extra.js
View file @
8bb0b69e
...
@@ -42,20 +42,9 @@ var nodemcu = nodemcu || {};
...
@@ -42,20 +42,9 @@ var nodemcu = nodemcu || {};
* the subsequent DOM manipulation using a DOM4 MutationObserver.
* the subsequent DOM manipulation using a DOM4 MutationObserver.
*/
*/
function
addLanguageSelectorToRtdFlyOutMenu
()
{
function
addLanguageSelectorToRtdFlyOutMenu
()
{
var
observer
,
observerConfig
=
{
childList
:
true
};
var
observer
=
new
MutationObserver
(
function
(
mutations
)
{
var
flyOutWrapper
=
$
(
'
.rst-other-versions
'
);
// since mutation on the target node was triggered we can safely assume the inject RTD div has now been added
var
injectedDiv
=
$
(
'
.rst-other-versions .injected
'
);
// Create an observer instance
observer
=
new
MutationObserver
(
function
(
mutations
)
{
mutations
.
forEach
(
function
(
mutation
)
{
debugger
;
var
newNodes
=
mutation
.
addedNodes
;
// DOM NodeList
if
(
newNodes
!==
null
)
{
// If there are new nodes added
var
$nodes
=
$
(
newNodes
);
// jQuery set
$nodes
.
each
(
function
()
{
var
$node
=
$
(
this
);
});
var
selectedLanguageCode
=
determineSelectedLanguageCode
();
var
selectedLanguageCode
=
determineSelectedLanguageCode
();
var
dl
=
document
.
createElement
(
'
dl
'
);
var
dl
=
document
.
createElement
(
'
dl
'
);
var
dt
=
document
.
createElement
(
'
dt
'
);
var
dt
=
document
.
createElement
(
'
dt
'
);
...
@@ -64,15 +53,13 @@ var nodemcu = nodemcu || {};
...
@@ -64,15 +53,13 @@ var nodemcu = nodemcu || {};
for
(
var
languageCode
in
languageCodeToNameMap
)
{
for
(
var
languageCode
in
languageCodeToNameMap
)
{
dl
.
appendChild
(
createLanguageLinkFor
(
languageCode
,
selectedLanguageCode
===
languageCode
));
dl
.
appendChild
(
createLanguageLinkFor
(
languageCode
,
selectedLanguageCode
===
languageCode
));
}
}
flyOutWrapper
.
prepend
(
dl
);
injectedDiv
.
prepend
(
dl
);
// Later, you can stop observing
// no need for that observer anymore
observer
.
disconnect
();
observer
.
disconnect
();
}
});
});
});
//
Pass in the
target node
, as well as the observer options
//
observed
target node
is the fly-out wrapper, the only event we care about is when children are modified
observer
.
observe
(
flyOutWrapper
[
0
],
observerConfig
);
observer
.
observe
(
$
(
'
.rst-other-versions
'
)[
0
],
{
childList
:
true
}
);
}
}
function
createLanguageLinkFor
(
languageCode
,
isCurrentlySelected
)
{
function
createLanguageLinkFor
(
languageCode
,
isCurrentlySelected
)
{
var
strong
;
var
strong
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment