如何:将Div设置为链接,而不是其中的图像
How to: Make a Div a link, but not the images within it
很抱歉就同样的场景问了更多的问题,但这里是:
我的文本很棒,图像放置得很完美,但是,我不希望jquery滑动方法在图像被点击时运行(那些保存用于其他功能)。是否有可能使幻灯片功能仅在单击图像左侧的"块"时运行?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideToggle("slow");
});
});
</script>
<body>
<div id="flip">
<div id="flipBox"><p>Click to slide the panel down or up</p></div>
<img class="ux" src="http://placekitten.com/32/32" alt="complete" height="32" width="32" align="right" />
<img class="ux" src="http://placekitten.com/32/32" alt="add" height="32" width="32" align="right" />
<img class="ux" src="http://placekitten.com/32/32" alt="edit" height="32" width="32" align="right" />
<img class="ux" src="http://placekitten.com/32/32" alt="remove" height="32" width="32" align="right" />
</div>
<div id="panel">Hello world!</div>
</body>
这里是jfiddle的链接:http://jsfiddle.net/rvAPk/
我非常感谢SO的知识渊博的人!谢谢你们了!
aj
您可以使用 e.stopPropagation () :
防止事件冒泡到DOM树,防止任何父处理程序无法收到事件通知。
$("#flip img").click(function(e){
e.stopPropagation()
});
更新小提琴
或者你可以试试这个:
<script>
$(document).ready(function(){
$("#flip").click(function(e){
if(!($(e.target).is(".ux"))) {
$("#panel").slideToggle("slow");
}
});
});
</script>
我在Android浏览器的实际开发中遇到过event. stoppropagation()不工作的一些原因,我采用了与上面相同的方法,即检查事件目标。
按照您的示例,您可以这样做…
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#flip").click(function(e){
if($(e.target).prop("tagName") == 'IMG')
return false;
$("#panel").slideToggle("slow");
});
});
</script>
<body>
<div id="flip">
<div id="flipBox"><p>Click to slide the panel down or up</p></div>
<img class="ux" src="http://placekitten.com/32/32" alt="complete" height="32" width="32" align="right" />
<img class="ux" src="http://placekitten.com/32/32" alt="add" height="32" width="32" align="right" />
<img class="ux" src="http://placekitten.com/32/32" alt="edit" height="32" width="32" align="right" />
<img class="ux" src="http://placekitten.com/32/32" alt="remove" height="32" width="32" align="right" />
</div>
<div id="panel">Hello world!</div>
</body>
相关文章:
- 只从DIV删除图像,而不是整个网站
- 下载Div&画布为一个图像
- 以Jquery为中心的Div中的图像对齐
- 从Div创建图像,并使用Javascript和ASP.net将其保存到服务器
- 使用Javascript对象为具有两个背景图像的DIV设置样式时出现问题
- 点击一个按钮,有没有一种方法可以检查Div内部的图像
- HTML5拖放新图像并替换Div中的现有图像
- HTML JS在DIV中附加随机图像
- 根据容器 DIV 中的图像动态调整容器 DIV 的大小
- Div在单击图像时未执行slideTogle()
- 在Div中刷新图像,只更改文件内容,不更改名称
- 如何设置DIV背景图像css jquery
- 如何将SVG元素和Div放入图像中,以便用户可以下载
- 在使用IE9上传之前预览Div中的图像
- Div背景图像打印空白
- 链路翻转时的 DIV 背景图像交换
- 在加载 DIV 之前显示微调器图像
- 图像/DIV 元素切换全屏
- 通过 DIV 数据打开图像
- 显示/隐藏图像DIV