2013-09-10 31 views
1

这里是我的代码:JQuery的通过HTML ID为参数

HTML

<img src"../MyPic_1" id="MyImg_1" onclick = "MyJQfunction($(this))"> 
<img src"../MyPic_2" id="MyImg_2" onclick = "MyJQfunction($(this))"> 
<img src"../MyPic_3" id="MyImg_3" onclick = "MyJQfunction($(this))"> 

JQUERY

<script> 
function MyJQfunction(MyField) 
{ 
    MyField.hide(); 
} 
</script> 

正如你可以看到我正在努力将HTML元素发送到我的JQ Functi因此它知道要隐藏什么。

我在做什么错?

注:这是我真正需要做的,我只是想避免包括你不在乎代码只是一个简单的例子。谢谢!

+0

你有什么工作,一旦你修复语法错误。 http://jsfiddle.net/3ynDC/ –

+1

这个问题似乎是脱离主题,因为问题是一个错字。 –

+0

错字不是问题,写这个问题是我的一个错误。正如我在说明中所说:这仅仅是一个例子。 –

回答

0

这是我会做什么:

<img src="../MyPic_1" id="MyImg_1" class="image_to_hide"/> 
<img src="../MyPic_2" id="MyImg_2" class="image_to_hide"/> 
<img src="../MyPic_3" id="MyImg_3" class="image_to_hide"/> 

...

<script> 
    $(".image_to_hide").click(function(){ 
     $(this).hide(); 
    }); 
</script> 
+0

这非常有效,因为它非常简单,但是我的代码有点复杂,并且不适合。但是thanx,我相信你的答案会被其他人使用。 –

2

您正在使用jQuery所以附加的事件处理程序,而不是使用onclick

<img src="../MyPic_1" id="MyImg_1" class="myIMage"> 
<img src="../MyPic_2" id="MyImg_2" class="myIMage"> 
<img src="../MyPic_3" id="MyImg_3" class="myIMage"> 

$(function(){ 
     $('.myIMage').on('click', MyJQFunction); 
} 

function MyJQFunction() 
{ 
    $(this).hide(); //here this represents the element clicked. 
} 

或者经典的方式;在调用时使用Function.call来设置函数的上下文。

<img src"../MyPic_1" id="MyImg_1" onclick = "MyJQfunction.call(this)"> 

function MyJQFunction() 
{ 
    $(this).hide(); //and this here is now the clicked element. 
} 

另外,在你的代码的图片标签似乎是不正确的,MyJQfunctionMyJQFunction具有外壳(注意f外壳)的问题。检查控制台是否有错误。否则,你的代码应该工作。

+0

太棒了,我尝试了两种方法,他们的工作非常完美! 只是为别人注: 在第二个选项,如果你有多个参数: ** ** HTML ** ** JQUERY功能 MyJQFunction(2ndPar,3rdPar)** //无需要为'this'声明一个参数** –

0

你应该换行jQuery的功能,这样

function MyJQFunction(MyField) 
{ 
    $(MyField).hide(); 
} 
+0

我试过这个......没有工作:( –