我试图弄清楚如何触发相同的jQuery函数,点击一个锚标签或按下L键。
这是起点:
jQuery('body').on('click','.jm-post-like',function(event){
event.preventDefault();
heart = jQuery(this);
post_id = heart.data("post_id");
jQuery.ajax({
[NOTE: inside here there is some code using the variable 'heart'!]
});
});
在这种情况下,heart
指的是'.jm-post-like'
。要将该代码嵌套在函数中,我必须更改该var:
function likesystem(event) {
heart = jQuery('.jm-post-like');
post_id = heart.data("post_id");
jQuery.ajax({
.....
});
}
jQuery('.jm-post-like').on('click', function(event) {
event.preventDefault();
likesystem(event);
});
jQuery(document).keydown(function(event) {
if (event.keyCode == 76) { // L key code
likesystem(event);
}
});
我必须说它工作正常,除了那些有多个'.jm-post-like'
的页面。我已经尝试使用this
和that
建议here,但是如果是keydown this
则会引用jQuery(文档)!
jQuery(document).keydown(function(this) {
if (event.keyCode == 76) { // L key code
likesystem(this);
}
});
我对jQuery并不十分热衷,所以非常感谢任何建议;)
答案 0 :(得分:1)
你需要告诉它哪一个。
您可以使用事件目标。
function likesystem(event) {
heart = jQuery(event.target);
或者你可以使用它,但你需要使用事件冒泡
jQuery(document).on("keydown", ".jm-post-like", function(event) {
if (event.keyCode == 76) { // L key code
likesystem(this);
}
});
但如果他们没有焦点元素,按下“L”键实际上没有任何意义。