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
cto
g1
Commits
ddec8083
Commit
ddec8083
authored
Mar 31, 2018
by
S Anand
Browse files
BUG: highlight() should not highlight outside container
parent
d60c4929
Pipeline
#45249
failed with stage
in 0 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/highlight.js
View file @
ddec8083
...
...
@@ -11,7 +11,7 @@ var container_options = {
export
function
highlight
(
options
)
{
this
.
each
(
function
()
{
var
settings
=
$
.
extend
({},
container_options
,
options
,
this
.
dataset
)
var
container
=
this
// Loop through all triggers in the container. This may include the container itself
findall
(
$
(
this
),
settings
.
selector
).
each
(
function
()
{
var
opts
=
$
.
extend
({},
settings
,
this
.
dataset
)
...
...
@@ -19,7 +19,7 @@ export function highlight(options) {
var
event
=
opts
.
mode
==
'
click
'
?
'
click.g1.highlight
'
:
'
mouseenter.g1.highlight mouseleave.g1.highlight
'
$this
.
on
(
event
,
function
()
{
// When the trigger is triggered, toggle the target classes and fire a highlight event
var
target
=
$
(
opts
.
target
).
toggleClass
(
opts
.
classes
)
var
target
=
$
(
opts
.
target
,
container
).
toggleClass
(
opts
.
classes
)
$this
.
trigger
({
type
:
'
highlight
'
,
target
:
target
})
})
})
...
...
test/test-highlight.html
View file @
ddec8083
...
...
@@ -16,22 +16,28 @@
</script>
<div
class=
"container1"
>
<div
data-toggle=
"highlight"
class=
"trigger1"
data-target=
".target1"
>
trigger
</div>
<em
class=
"target1"
>
target
</em>
<div
data-toggle=
"highlight"
class=
"trigger2"
data-target=
".target2"
data-mode=
"click"
>
trigger
</div>
<em
class=
"target2"
>
target
</em>
<div
data-toggle=
"highlight"
class=
"trigger3"
data-target=
".target3"
data-classes=
"blue"
>
trigger
</div>
<em
class=
"target3"
>
target
</em>
<div
data-toggle=
"highlight"
class=
"trigger1"
data-target=
".target1"
>
trigger
1
</div>
<em
class=
"target1"
>
target
1
</em>
<div
data-toggle=
"highlight"
class=
"trigger2"
data-target=
".target2"
data-mode=
"click"
>
trigger
2
</div>
<em
class=
"target2"
>
target
2
</em>
<div
data-toggle=
"highlight"
class=
"trigger3"
data-target=
".target3"
data-classes=
"blue"
>
trigger
3
</div>
<em
class=
"target3"
>
target
3
</em>
</div>
<div
class=
"container2"
data-selector=
".trigger4"
data-mode=
"click"
data-classes=
"blue"
data-target=
".target4"
>
<div
class=
"trigger4"
>
trigger
</div>
<em
class=
"target4"
>
target
</em>
<div
class=
"trigger4"
>
trigger
4
</div>
<em
class=
"target4"
>
target
4
</em>
</div>
<div
class=
"container3"
>
<div
class=
"trigger5"
>
trigger
</div>
<em
class=
"target5"
>
target
</em>
<div
class=
"trigger5"
>
trigger5
</div>
<em
class=
"target5"
>
target5
</em>
</div>
<div
class=
"container4"
>
<div
data-toggle=
"highlight"
class=
"trigger6"
data-target=
".target6"
>
trigger6
</div>
<em
class=
"target6"
>
target6
</em>
</div>
<script>
// In the container, trigger the event on the trigger selector.
// Ensure that the target has classes
function
check
(
container
,
trigger
,
event
,
classes
)
{
return
function
(
t
)
{
container
.
one
(
'
highlight
'
,
function
(
e
)
{
...
...
@@ -50,7 +56,7 @@
tape
(
'
$().highlight() class enter
'
,
check
(
$container1
,
'
.trigger3
'
,
'
mouseenter
'
,
'
.target3.blue
'
))
tape
(
'
$().highlight() class leave
'
,
check
(
$container1
,
'
.trigger3
'
,
'
mouseleave
'
,
'
.target3
'
))
// Test container attributes
//
//
Test container attributes
var
$container2
=
$
(
'
.container2
'
).
highlight
()
tape
(
'
$().highlight() container click
'
,
check
(
$container2
,
'
.trigger4
'
,
'
click
'
,
'
.target4.blue
'
))
tape
(
'
$().highlight() container click
'
,
check
(
$container2
,
'
.trigger4
'
,
'
click
'
,
'
.target4
'
))
...
...
@@ -62,8 +68,22 @@
classes
:
'
blue
'
,
target
:
'
.target5
'
})
// Test highlight options
var
$container3
=
$
(
'
.container3
'
).
highlight
({
selector
:
'
.trigger4
'
,
mode
:
'
click
'
,
classes
:
'
blue
'
,
target
:
'
.target4
'
})
tape
(
'
$().highlight() container click
'
,
check
(
$container3
,
'
.trigger5
'
,
'
click
'
,
'
.target5.blue
'
))
tape
(
'
$().highlight() container click
'
,
check
(
$container3
,
'
.trigger5
'
,
'
click
'
,
'
.target5
'
))
</script>
// Test running highlight on parent of data-highlight="container"
var
$body
=
$
(
'
body
'
).
highlight
()
tape
(
'
$().highlight() enter
'
,
check
(
$
(
'
.container4
'
),
'
.trigger6
'
,
'
mouseenter
'
,
'
.target6.active
'
))
tape
(
'
$().highlight() leave
'
,
check
(
$
(
'
.container4
'
),
'
.trigger6
'
,
'
mouseleave
'
,
'
.target6
'
))
</script>
</body>
</html>
Tejesh
🖖
@tejesh.p
mentioned in commit
a2354ba8
·
May 24, 2018
mentioned in commit
a2354ba8
mentioned in commit a2354ba8606bda2d2da7842432b0f8c14722e352
Toggle commit list
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