【发布时间】:2014-01-06 14:38:33
【问题描述】:
我与添加到 wordpress 后端的 jQuery 功能发生冲突。可以选择将其中两个功能添加到页面,但是当有两个时,第一个有效,第二个无效。他们都必须共享相同的类和 ID
这是我的小提琴:http://jsfiddle.net/yQMvh/39/
HTML
<div class="plugin">
<div class="iconDisplay">Display's selected icon</div>
<span id="selectedIcon" class="selected-icon"></span>
<button id="selectIconButton">Select Icon</button>
<div id="iconSelector" class="icon-list">
<div id="iconSearch">
<label for="icon-search">Search Icon: </label>
<input type="text" name="icon-search" value="">
</div>
<span class="icon-orange"></span>
<span class="icon-teal"></span>
<span class="icon-icon3"></span>
<span class="icon-icon4"></span>
<span class="icon-icon5"></span>
<span class="icon-icon6"></span>
<span class="icon-icon7"></span>
<span class="icon-tealer"></span>
</div>
</div>
<div style="height: 50px"></div>
<div class="plugin">
<div class="iconDisplay">Display's selected icon</div>
<span id="selectedIcon" class="selected-icon"></span>
<button id="selectIconButton">Select Icon</button>
<div id="iconSelector" class="icon-list">
<div id="iconSearch">
<label for="icon-search">Search Icon: </label>
<input type="text" name="icon-search" value="">
</div>
<span class="icon-orange"></span>
<span class="icon-teal"></span>
<span class="icon-icon3"></span>
<span class="icon-icon4"></span>
<span class="icon-icon5"></span>
<span class="icon-icon6"></span>
<span class="icon-icon7"></span>
<span class="icon-tealer"></span>
</div>
</div>
jQuery
var iconVal = $(".icon_field").val();
$('#selectedIcon').addClass(iconVal);
$("#selectIconButton").click(function () {
$("#iconSelector").fadeToggle();
});
$("#iconSelector span").click(function () {
selectIcon($(this));
});
function selectIcon(e) {
var selection = e.attr('class');
$(".icon_field").val(selection);
$("#iconSelector").hide();
$('#selectedIcon').removeClass();
$('#selectedIcon').addClass(selection).show();
return;
}
$('input[name="icon-search"]').keyup(function(){
var sValue = $(this).val().toLowerCase();
$.each($('span'), function(){
if($(this).attr('class').indexOf(sValue)===-1){
$(this).fadeOut(0);
}else{
$(this).fadeIn(0);
}
});
});
【问题讨论】:
-
如果你给两个元素相同的“id”值,所有的赌注都被取消了,jQuery 根本无法正常工作。
-
@OGDEV1990 - HTML DOM 不允许多个元素具有相同的 ID。再多的 jQuery 或 JavaScript 都无法解决这个问题。
-
我明白了。我设法解决了其中的一些问题,但事情并非一团糟。 jsfiddle.net/yQMvh/43
-
您仍在重复使用 ID。而不是使用 id,分配类,然后尝试研究同级选择器,或者重组 HTML 以便可以使用子选择器。
标签: php javascript jquery html wordpress