回答編集履歴
3
コメントを追加
test
CHANGED
@@ -22,9 +22,9 @@
|
|
22
22
|
|
23
23
|
if ($('#gNavi>.menu-item-has-children').length) {
|
24
24
|
|
25
|
-
$('#item123>a,#item002>a').replaceWith(function () {
|
25
|
+
$('#item123>a,#item002>a').replaceWith(function () { // id 属性値は一意の為、.item-has-children の条件を削除
|
26
26
|
|
27
|
-
return $('<div></div>').append(this.childNodes);
|
27
|
+
return $('<div></div>').append(this.childNodes); // .html() で書き換えると addEventListener を代表とするDOM参照する機能が全て解除される(新しく参照が作られる為)ので既存のDOMノードを append() するように
|
28
28
|
|
29
29
|
});
|
30
30
|
|
2
`replaceWith\(\)` に修正
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
こんなところでしょうか。
|
2
|
+
|
3
|
+
- [Edit fiddle - JSFiddle](https://jsfiddle.net/50py9Lk6/1/)
|
2
4
|
|
3
5
|
|
4
6
|
|
@@ -18,9 +20,13 @@
|
|
18
20
|
|
19
21
|
(function ($) {
|
20
22
|
|
21
|
-
if ($('#gNavi>.menu-item-has-children').length){
|
23
|
+
if ($('#gNavi>.menu-item-has-children').length) {
|
22
24
|
|
23
|
-
$('#item123>a,#item002>a').
|
25
|
+
$('#item123>a,#item002>a').replaceWith(function () {
|
26
|
+
|
27
|
+
return $('<div></div>').append(this.childNodes);
|
28
|
+
|
29
|
+
});
|
24
30
|
|
25
31
|
}
|
26
32
|
|
@@ -32,12 +38,6 @@
|
|
32
38
|
|
33
39
|
|
34
40
|
|
35
|
-
**(2015/12/16 12:31追記)**
|
41
|
+
**(2015/12/16 12:31追記)** `wrapInner()` では期待通りには動作しないという指摘を頂き、`wrap()` に修正しました。
|
36
42
|
|
37
|
-
|
38
|
-
|
39
|
-
|
43
|
+
**(2015/12/16 14:57追記)** 更に間違っていたので、`replaceWith()` に修正しました。
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
- [Create a new fiddle - JSFiddle](https://jsfiddle.net/50py9Lk6/)
|
1
`wrapInner\(\)` では期待通りには動作しないという指摘を頂き、`wrap\(\)` に修正
test
CHANGED
@@ -2,16 +2,42 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
```
|
5
|
+
```HTML
|
6
6
|
|
7
|
-
|
7
|
+
<ul id="gNavi">
|
8
8
|
|
9
|
-
i
|
9
|
+
<li id="item002" class="menu-item-has-children"><a href="#product002">item002</a></li>
|
10
10
|
|
11
|
+
<li id="item123" class="menu-item-has-children"><a href="#product123">item123</a></li>
|
12
|
+
|
13
|
+
</ul>
|
14
|
+
|
15
|
+
<script>
|
16
|
+
|
17
|
+
'use strict';
|
18
|
+
|
19
|
+
(function ($) {
|
20
|
+
|
21
|
+
if ($('#gNavi>.menu-item-has-children').length){
|
22
|
+
|
11
|
-
$('#item123>a,#item002>a').wrap
|
23
|
+
$('#item123>a,#item002>a').wrap('<div></div>');
|
12
24
|
|
13
25
|
}
|
14
26
|
|
15
|
-
}
|
27
|
+
}(jQuery));
|
28
|
+
|
29
|
+
</script>
|
16
30
|
|
17
31
|
```
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
**(2015/12/16 12:31追記)**
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
`wrapInner()` では期待通りには動作しないという指摘を頂き、`wrap()` に修正しました。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
- [Create a new fiddle - JSFiddle](https://jsfiddle.net/50py9Lk6/)
|