试图绕过jQuery".not()"函数,并遇到问题.我希望父div可以"可点击"但如果用户点击子元素,则不会调用该脚本.
$(this).not(children()).click(function(){
$(".example").fadeOut("fast");
});
Run Code Online (Sandbox Code Playgroud)
html:
<div class="example">
<div>
<p>This content is not affected by clicks.</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个下面的菜单,可以深入到三个级别:
Main > sub > subsub
<nav>
<div class="mainMenu">Main Menu Item # 1.
<ul>
<li> Sub Menu Item # 1</li>
<li class="subMenu"> Sub Menu Item # 2
<ul>
<a href="New">
<li>New</li>
</a>
<a href="">
<li>Old</li>
</a>
<a href="">
<li>View </li>
</a>
</ul>
<div class="n_r2_c2"></div>
</li>
<li> Sub Menu Item # 3</li>
<li> Sub Menu Item # 4</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的JQ:
$('.mainMenu').click(function () {
$(this).children('ul').slideToggle(250);
});
$('.subMenu').click(function () {
$(this).children('ul').slideToggle(250);
});
Run Code Online (Sandbox Code Playgroud)
问题是主菜单子菜单的子菜单切换工作正常,但当我点击子菜单中的项目而不是切换其子菜单时,它关闭自己,因为当我点击子菜单时,主菜单click
事件也被解雇了可能是因为子菜单在它里面而且它点击主要div点击它?
无论如何我如何解决这个问题,请帮忙.
我在div中有一个带有"元素"类的锚.
<div class="element logout">
<div class="subTop">
<a href="home.jsp" onclick="return confirm('Do you want to logout?');">Log Out</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码来处理注销.
jQuery(".element").click(function(e){
var tmpHref=jQuery(this).not('.logout').find(".subTop>a").attr('href');
if(tmpHref!=undefined&&tmpHref!=""&&tmpHref!=null)
{
window.location.href=tmpHref;
}
else
{
jQuery(this).find(".subTop>a").click();
}
});
Run Code Online (Sandbox Code Playgroud)
但我的问题是确认事件一次又一次地触发.我认为这是因为传播均匀.经过我的研究,我发现我可以e.stopPropagation()
在这篇文章中使用.但我无法弄清楚如何在这里使用它.
编辑 消息'您要退出吗?' 在确认框中是从数据库中动态获取的,所以我无法在代码中对其进行硬编码.
如果我有一个浮动消息框,我想知道是否在该框中单击段落文本也会在jQuery中注册点击它的父元素,或者如果我必须为子元素添加点击监听器.
更新:这是基本布局:
<div id='msgbox'>
<p>This is the <span>message</span></p>
</div>
Run Code Online (Sandbox Code Playgroud)
现在,如果我单击<p>
或在<span>
遗嘱中的文本,它仍然会触发点击$('#msgbox')
?
更新2:我可以停止这种行为吗?
更新3:这是我要走的小提琴:http://jsfiddle.net/MZtbY/ - 现在是否有办法在达到一定水平后停止传播?所以点击它<p>
会没问题,但点击它<span>
会什么都不做? - 有点像$('#msgbox :nth-child').click(function(e) {e.stopPropagation();});
最近我有一些jQuery的问题.我只想说我有这样的元素:
<div id="parent1" class="parent">
<div id="child1" class="children">
<a href="" id="child_link1" class="child_link"></a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有这样的jQuery函数:
$(".parent").click(function(){
alert("parent is clicked");
});
$(".child_link").click(function(){
alert("child link is clicked");
});
Run Code Online (Sandbox Code Playgroud)
如果我单击child_link,也会触发父级.如何创建一种情况,如果单击child_link,父级将不会被触发?
这里真的很简单的jquery问题,我还没有解决.我有以下的html表
<table id="table-1">
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td>
<button id="btn-1" value="Go"></button>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
单击表行时,我有以下事件侦听器
$("table-1 tr").on(
'click',
function(e){
if(button was clicked){
//do some stuff
} else {
//do different stuff
}
}
);
Run Code Online (Sandbox Code Playgroud)
每当选择表格行时,我都希望触发此事件监听器,除非单击的项目是我的按钮.我一直在尝试使用:not
和.not()
,但没有运气.有任何想法吗?
我不确定这真的是冒泡,我会解释.
我有这个:
<div>
<div>
text here
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何绑定一个on click事件,以便它只影响所包含的div?如果我这样设置:
jQuery('div').bind('click', function() {
jQuery(this).css('background','blue');
});
Run Code Online (Sandbox Code Playgroud)
它使蓝色所有的div.如果我将false作为第三个参数(防止冒泡)添加到绑定函数,它什么都不做.
我该怎么解决这个问题?
我有这样的结构:
<tr>
<td onClick="doSomeStuff();">
<a href="#" onClick="doOtherStuff(1);">1</a>
<a href="#" onClick="doOtherStuff(2);">1</a>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我的问题是doSomeStuff()
总是执行,无论我点击一个<a href>
元素.
我怎么解决这个问题?
我有一个2 div元素.一个是孩子,一个是父母喜欢:
<div id="p">
<div id="c">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
该parent
div有2事件连接click
和dblclick
子女div有附加1个事件click
.现在我的问题是当我点击child div
父div点击事件时也执行了.我试过e.stopPropagation();
但仍然是同样的行为.帮我 ?
嗨我有孩子ul和父李,这是jquery的目标,它在其中点击事件切换"显示"类.我面临的问题是,由于某些原因,当我点击子ul li元素时,它也会触发该事件.怎么预防?
这是我的代码.
<script>
$(document).ready(function() {
$('.dropdown').click(function(e) {
e.stopPropagation();
$(this).toggleClass('shown');
e.preventDefault();
})
})
</script>
<li class="dropdown"><a title="Installation" href="#">Installation <span class="caret"></span></a>
<ul role="menu" class="dropdown-menu">
<li>
<a title="Wood Floor Installation" href="">Wood Floor Installation</a></li>
<li>
<a title="Sub Floor Preparation" href="">Sub Floor Preparation</a></li>
<li>
<a title="Type of your subfloor" href="">Type of your subfloor</a></li>
<li>
<a title="Wood Floor Fitting Method" href="">Wood Floor Fitting Method</a>
</li>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud) 每个元素都绑定了几个事件.有时,父元素和子元素都包含点击事件!如果我点击子元素,父元素也会被触发.如何使用jquery防止这些事件被触发!
我尝试更改整个页面的背景颜色,点击我的div与id main
.这是我的代码:
$(document).ready(function() {
var color = 1;
$('#main').click(function() {
if (color == 1) {
$(this).css("background-color", "green");
color = 2;
} else if (color == 2) {
$(this).css("background-color", "black");
color = 1;
}
});
});
Run Code Online (Sandbox Code Playgroud)
#admin_div {
position: absolute;
width: 80%;
height: 80%;
border: 2px solid white;
border-radius: 10px;
background-color: #D9D9D9;
z-index: 1;
}
h1 {
margin-left: 15px;
}
#main {
height: 100%;
width: 100%;
z-index: 0;
}
Run Code Online (Sandbox Code Playgroud)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<div id="main">
<div id="admin_div">
<h1>Admin …
Run Code Online (Sandbox Code Playgroud)