Javascript 如何在列表中添加onclick函数,即<;li onclick=”一词&引用&燃气轮机&书信电报;按钮onclick="&引用&燃气轮机</按钮></李>;
基本上,我想创建一个侧栏,其中将有许多联系人。 每个联系人都在一个列表中。 列表中有两个onclick函数。 在列表中,两个onclick函数是: 第一次单击-单击列表后,应打开另一个侧栏(我已经创建了它)。 第二次单击此单击位于Javascript 如何在列表中添加onclick函数,即<;li onclick=”一词&引用&燃气轮机&书信电报;按钮onclick="&引用&燃气轮机</按钮></李>;,javascript,jquery,html,css,onclick,Javascript,Jquery,Html,Css,Onclick,基本上,我想创建一个侧栏,其中将有许多联系人。 每个联系人都在一个列表中。 列表中有两个onclick函数。 在列表中,两个onclick函数是: 第一次单击-单击列表后,应打开另一个侧栏(我已经创建了它)。 第二次单击此单击位于内部,即单击此单击后,应打开一个新的聊天框(几乎完成)。 但在我的例子中,每当我点击侧边栏中的任何列表时,它都会同时显示侧边栏和聊天框。 我希望两个onclick函数分别工作 html代码: <ul class="list mat-ripple">
内部,即
单击此单击后,应打开一个新的聊天框(几乎完成)。
但在我的例子中,每当我点击侧边栏中的任何列表时,它都会同时显示侧边栏和聊天框。
我希望两个onclick函数分别工作
html代码:
<ul class="list mat-ripple">
<li ><img src="img1.png"><span class="name"> abc</span>
<button class="btn-link" style="margin-left:65px;color:green;font-size:15px;">
<b>
<i class="fa fa-comments" aria-hidden="true"> </i>
</b>
</button>
</li>
<li>
<img src="img1.png"><span class="name"> abc</span>
<button id="clickme" style="margin-left:65px;color:green;font-size:15px;">
<b>
<i class="fa fa-comments" aria-hidden="true"> </i>
</b>
</button>
</li>
<li onclick="toggle_div_fun('sectiontohide');">
<img src="img1.png"><span class="name"> abc</span>
<button onclick="showFrontLayer();" style="margin-left:65px;color:green;font-size:15px;">
<b>
<i class="fa fa-comments" aria-hidden="true"> </i>
</b>
</button>
</li>
</b>
</button>
</li>
<li onclick="toggle_div_fun('sectiontohide');">
<img src="img1.png"><span class="name"> abc</span>
<button onclick="showFrontLayer();" style="margin-left:65px;color:green;font-size:15px;">
<b>
<i class="fa fa-comments" aria-hidden="true"> </i>
</b>
</button>
</li>
</ul>
- abc
-
abc
-
abc
-
abc
列表中的第一个oclick函数需要针对以下代码(需要使用onclick函数切换的第二个侧栏):
联系人名单
萨钦先生
萨钦先生
萨钦先生
萨钦先生
第二次单击后,按钮内的功能针对以下代码(切换):
javascript函数:
<script>
function showFrontLayer() {
document.getElementById('bg_mask').style.visibility='visible';
document.getElementById('frontlayer').style.visibility='visible';
}
function hideFrontLayer() {
document.getElementById('bg_mask').style.visibility='hidden';
document.getElementById('frontlayer').style.visibility='hidden';
}
</script>
函数showFrontLayer(){
document.getElementById('bg_mask').style.visibility='visible';
document.getElementById('frontlayer').style.visibility='visible';
}
函数hideFrontLayer(){
document.getElementById('bg_mask').style.visibility='hidden';
document.getElementById('frontlayer').style.visibility='hidden';
}
是否有其他代码切换2个目标元素(边栏和聊天框)?
这两项都应该在一个列表中完成,因为您已经用jQuery标记了它,所以我假设您有可用的jQuery 您可以使用jQuery,
$('button')附加单击事件。单击(function(){…})
因此,您可能需要附加一个单击事件,该事件检查某些功能的状态,并根据这些功能执行不同的操作
例如,您可以让它检查类“clicked”,如果它没有类“clicked”,则展开第二个侧栏并添加类“clicked”,如果它确实有类“clicked”,则执行希望它执行的第二个单击功能
当然,根据所需行为的具体情况,您可能希望以与添加类“clicked”不同的方式检查和更改状态,但这只是一种方法。鉴于您已经用jQuery标记了它,我假设您有可用的jQuery 您可以使用jQuery,
$('button')附加单击事件。单击(function(){…})
因此,您可能需要附加一个单击事件,该事件检查某些功能的状态,并根据这些功能执行不同的操作
例如,您可以让它检查类“clicked”,如果它没有类“clicked”,则展开第二个侧栏并添加类“clicked”,如果它确实有类“clicked”,则执行希望它执行的第二个单击功能
当然,根据所需行为的具体情况,您可能希望以与添加类“clicked”不同的方式检查和更改状态,但这只是一种方法。您可以像这样使用jquery简单地使用onclick事件
$(document).ready(function(){
$('button').click(function(){
<!---Your Code-->
});
});
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
});
});
您可以像这样使用jquery简单地使用onclick事件
$(document).ready(function(){
$('button').click(function(){
<!---Your Code-->
});
});
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
});
});
问题在于理解Javascript中的事件处理。您有一个包含单击事件的列表元素。此列表元素包含一个按钮,该按钮也有一个单击事件。这意味着,当您单击列表项时,会触发两个事件(这就是为什么您会看到两个div)。我认为可以通过在showFrontLayer和HideFrontLayer函数中使用event.stopPropagation()来解决这个问题,以防止事件目标冒泡到列表项
function showFrontLayer(evt) {
evt.stopPropagation();
document.getElementById('bg_mask').style.visibility='visible';
document.getElementById('frontlayer').style.visibility='visible';
}
function hideFrontLayer(evt) {
evt.stopPropagation();
document.getElementById('bg_mask').style.visibility='hidden';
document.getElementById('frontlayer').style.visibility='hidden';
}
有关事件捕获和冒泡的更多信息,请参见:问题在于理解Javascript中的事件处理。您有一个包含单击事件的列表元素。此列表元素包含一个按钮,该按钮也有一个单击事件。这意味着,当您单击列表项时,会触发两个事件(这就是为什么您会看到两个div)。我认为可以通过在showFrontLayer和HideFrontLayer函数中使用event.stopPropagation()来解决这个问题,以防止事件目标冒泡到列表项
function showFrontLayer(evt) {
evt.stopPropagation();
document.getElementById('bg_mask').style.visibility='visible';
document.getElementById('frontlayer').style.visibility='visible';
}
function hideFrontLayer(evt) {
evt.stopPropagation();
document.getElementById('bg_mask').style.visibility='hidden';
document.getElementById('frontlayer').style.visibility='hidden';
}
有关事件捕获和冒泡的更多信息,请参阅:我猜您需要的是:
event.stopPropagation();
这将防止事件从按钮(位于内部)传播到其父级
$(“#内部”)。单击(事件=>{
event.stopPropagation();
$(“#其他”).toggle();
});
$(“#外部”)。单击(事件=>{
控制台日志(“外部”);
});代码>
#外部{
背景颜色:蓝色;
宽度:100px;
高度:100px;
填充顶部:50px;
}
#其他{
背景色:红色;
宽度:100px;
高度:100px;
颜色:白色;
}
切换可见性
必须在单击按钮时切换此div
我猜您需要的是:
event.stopPropagation();
这将防止事件从按钮(位于内部)传播到其父级
$(“#内部”)。单击(事件=>{
event.stopPropagation();