2016-08-30 41 views
1

这个问题可能看起来微不足道,但我真的需要掌握它。任何帮助有关这是非常感谢。如何更改从jQuery绑定到onClick的跨度?

<span class="first">This thing</span> 
$(.first).click(function() {}); 

到现在为止我一直用这个。但是由于一些编码的限制,我被告知需要将jQuery绑定的跨度改为onClick。我无法完全按照他们的意思...可以帮我弄清楚这一点,如果可能的话,更好地阐明jQuery绑定和onClick绑定之间的区别。任何在这方面的帮助,非常感谢。非常感谢 !

+0

看看http://www.w3schools.com/jsref/event_onclick.asp对于如何做你想做的例子 – depperm

+0

有什么限制?一般认为使用'onclick'(和所有其他'on *'事件属性)是不好的做法,应尽可能避免。 –

+0

也许他们不想捆绑jquery库。 – Vasan

回答

0

我建议你使用“.on()”jQuery的功能来绑定事件并处理绑定的事件。

官方的jQuery的“.on()”文档说:“将一个或多个事件的事件处理函数附加到所选元素。”

直接链接:http://api.jquery.com/on/

工作例如:

$(document).ready(function() { 
 
    $('.first').on("click", function() { 
 
    alert('you clicked me!'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="first">This thing</span>

0

你必须要外部化的功能

$(".first").click(function() {}); 

的第一步就是要达到这样的

function spanClickFunction() { 
    ... some code ... 
} 
$(".first).click(spanClickFunction); 

然后你必须mov e本事件的跨度

<span onClick="spanClickFunction()" class="first">This thing</span> 

function spanClickFunction() { 
    ... some code ... 
} 

你可以有一个更好的了解.click().on("click")onClick().click()差异一看at this StackOverflowthis one

“基本理念”onClick会当元素被点击而jQuery的.click.on("click")可以事件侦听器添加到多个标签感谢他们的姓名,班级等只能解雇... 不是ID,因为它们在整个页面中必须是唯一的! 我会写一个的jsfiddle如果您还有其他问题,关于这个:)

0

这里是什么,他们可能想:

跨度类= “第一” 的onclick = “MYFUNC()”

与你的jQuery绑定的区别在于,你的jQuery选择器正在处理类“.first”的任何事情,而onclick版本只影响用html那一点绘制的东西。

你可以改变你的jQuery选择器工作在一个唯一的ID而不是一个类。

有很多可能的原因要求它以某种方式。使用jQuery绑定可以更轻松地处理和操作来自中央js文件的事件。使用onclick可以更容易地直接看到dom中发生了什么,也可以操作onclick attr而无需访问声明所有绑定的主js文件。它也可以归结为人们遵守的编码公约。

0

非常感谢您为我提出一些很好的答案。我一定会关注并浏览你提供的链接。

无论如何,以下onClick绑定为我工作。

$(document).on('click','.first',(function(){ 
})); 

其实我们遇到了一个问题,就是我的问题中提到的span元素的典型jQuery绑定。上面的onClick绑定帮助我们解决了这个问题。它看起来很标准。

但无论如何,非常感谢您的支持。我真的很感激它:)