我想知道哪一种上述方法是首选的,或者是您使用$(elem).click()进行简单操作的一般原则,以及< a onclick =“func(1,2,3,4);” >当单击元素时需要将参数传递给脚本?我一直试图只使用$(elem).click()来保持代码干净和简单,但是当你必须传递多个参数时,它会变得棘手,onclick =“”的函数调用看起来像是一个更好的解决方案。onclick =“func()”或.click()?
6
A
回答
5
$(elem).click(function() {
func(1,2,3,4);
});
这似乎是你想要的,不是吗?
3
我更喜欢使用$(elem).click()来保持我的HTML无javascript,我认为它更干净。
7
jQuery背后的主要思想之一是不引人注意的JavaScript(即HTML和JavaScript是两种味道不好的味道)。使用jQuery对象和选择器来附加功能是他们希望你做的。
4
如果这些参数可以在点击的时候予以确定,我会建议 装订方法:
$('a').click(function(){ someFunc(this.val, 2, 3, 4); })
一个情况下,我能想到的直列做的,是如果你正在构建多在一个循环中,其中PARAMS 1,2,3或4个链接被按照后端变量或东西变化:
<% for(int i = 0; i < 4; i++) { %>
<a onclick="someFunc(1,<%= i %>,3,4"></a>
<% } %>
就个人而言,我总是试图绑定到事件在$(文件)。就绪()回电话。
希望这有助于
0
当你使用jQuery,您可以将参数传递给函数:
$(".selector").click(function() { func(1,"2", someVar); });
我喜欢总是使用jQuery我的事件处理。我不喜欢在我的HTML中放置任何行为,即使是onclick
和相关事件。另外,如果你以编程方式点击使用$(".selector").click()
的东西,并且你有一个使用onclick
和jQuery连接的处理程序,它将首先调用jQuery处理程序,然后使用属性调用处理程序组。但是,如果你用鼠标点击,这是相反的方式。这可能是意想不到的,并最终让你头痛不已。
2
我与click()
去为好,如果你有,你想传递给函数的附加参数,将它们添加到任何对象的属性,我通常使用rel
这样的:
<a href="#" class="link" rel="parameter1, parameter2, etc">Link</a>
在脚本中你可以这样做:
$('.link').click(function() {
var parameters = $(this).attr('rel').split(',');
// Do something
return false;
})
相关问题
- 1. 的onclick = “JavaScript的:函数()” 对的onclick = “FUNC()”
- 2. Jquery .click防止默认onClick
- 3. jQuery:是element.click(func)还是element.attr('onclick','func()')更高效?
- 4. Coffeescript函数声明func: - >或func = - >?
- 5. 如何通过addEventListener添加onclick =“return func()”?
- 6. onclick或onClick?
- 7. onclick()和.on('click',function())之间的区别?
- 8. 将onClick事件绑定到.click函数
- 9. “所有方法”的C#委托或Func?
- 10. 我可以一起使用ng-click和onclick吗
- 11. 为什么不能使用onClick事件代替.click?
- 12. RecyclerView项目Click Click Listener
- 13. 愚蠢的JS FUNC
- 14. React Icon Click event
- 15. TreeView子节点的Select或Click事件
- 16. angularjs ng-click或ng-init? php变量
- 17. ListView没有响应Click或KeyPress
- 18. jQuery onClick GoTo ID或类别
- 19. 从调用.click()
- 20. Swift - private var/func vs private final var/func
- 21. func(QWidget * const&Widget)VS func(QWidget * const Widget)
- 22. 在jQuery中,$(func)等价于$(document).ready(func)?
- 23. 引用另一个func中的func(swift)
- 24. (ptr + i) - > Func()和&ptr [i] .Func()
- 25. ng-click ng-repeat
- 26. jquery unbind click
- 27. react-click event has event.target
- 28. 反向onClick事件onClick
- 29. click event disable other click events
- 30. jquery:live(click)ajax with one(click)event
但是,如果传递的参数给函数是唯一的每个元素,你可能有数百个这样的元素,它得到棘手做这种方式,所以这就是为什么我问是否在这些情况下,你应该e onclick =“func(1,2,3,4)”方法,或者应该坚持使用$(elem).click()。你当然可以将所有这些参数放入url查询字符串中,如foo = 1&bar = 2并将其放入href =“”和$(elem).click()中,使用$(this).href()来获取值,但是做onclick =“func()”会更有效率吗? – TheMagician 2009-10-25 03:38:52
那么你应该使用html5数据属性来设置与每个相关元素相关的唯一值:'link' – geowa4 2009-10-25 03:48:34
如果你有数百个这些元素,最有效的方法是使用[事件委托] [http://www.danwebb。 net/2008/2/8/event-delegation-made-easy-in-jquery],而不是每个元素的单独onclick处理程序。为了避免JS与HTML混在一起,可以将所需的参数存储在Javascript数据结构中,每个对象的键都是元素ID或类似元素。 – 2009-10-25 05:03:53