2010-03-04 42 views
2
<div id="pic"> 
    <div id="left"> 
    <img src="images/left.png" /> 
    </div> 
    <div id="right"> 
    <img src="images/right.png" /> 
    </div> 
</div> 

我想隐藏,当我点击dividdivid “右”, “左”jQuery的,一个div内访问格

代码我使用:

$("#left").click(function(){$("#right").hide();}); 

这不行,是什么原因?我将如何实现我的目标?

+0

你的代码是非常基本的......你可以显示你的整个HTML? – matdumsa 2010-03-04 06:12:17

+1

适合我。你的页面中多次有这些元素吗? – Kobi 2010-03-04 06:13:10

+0

嘿Kobi,你是正确的..我只是测试这个代码..还有一些其他问题..虽然我dint重复任何名称 – ksskr 2010-03-04 06:32:47

回答

3

有三件事情错了,因为你的代码是技术上是正确的:

  1. 你点击功能不会出现在你的$(document).ready功能
  2. 你的页面重复的ID。改用类。
  3. 你的div是动态创建的,因此上$(document).ready

未结合(1)是一个简单的解决。只需放入您的$(document).ready。 (2)只需将id属性更改为类,但如果要确保隐藏正确的div,则可能需要执行一些遍历。 (3)可以通过使用$(selector).bind('click', function(){});$(selector).live('click', function(){});

好运

UPDATE(12年1月24日)是固定的 - 如果你正在使用jQuery 1。7+,你应该使用$(selector).on('click', function(){});,而不是bind()live()

1

您的代码似乎是好的,但看起来你缺少jQueryready事件,试试这个:

$(function(){ 
$("#left").click(function(){ 
    $("#right").hide(); 
    }); 
}); 

注:$(function(){ready事件代码缩写形式。

+0

没有多数民众赞成在工作..谢谢 – ksskr 2010-03-04 06:15:21

+2

@srk:你的动态生成的div? – Sarfraz 2010-03-04 06:16:47

2

你的代码是正确的,适用于我。

还有其他错误。

尝试在的document.ready

$(document).ready(function() { 

    $("#left").click(function() { $("#right").hide(); }); 


}); 
0

一些可能的设置处理程序:

  1. 没有包括在HTML头部的jquery.js文件
  2. 有没有在前面没有bug在jQuery之前的JavaScript线?他们可以在达到这一点之前停止执行。
  3. 是id的唯一吗?也许你有多个id ='right'的元素?
1

点击事件只能在#left div加载后才能添加。出于这个原因,在domready调用中包装你现有的jquery。

$(document).ready(function(){ 
    $("#left").click(function(){$("#right").hide();}); 
});