我不是这个jquery的最佳人选。但我试图从函数中分离动作,以便我可以应用多个导致相同功能的事件。不幸的是,这不起作用。谁知道为什么?
更新了功能,但仍然是错误
$(document).ready(function() {
var $info_items = jQuery('.checkbox.has_info, .has_info');
$info_items.click(function(event) {
$(this).show_text(event);
});
// I suspect it has something to do with this initalizer of the function here
jQuery.fn.show_text = function(event){
var $info_item = jQuery(this);
$info_items.filter(function(index){
return $(".hidden_text").css("display","block");
}).not($info_item).parent().next().next().hide("slow");
$info_item.parent().next().next().show("fast");
});
});
答案 0 :(得分:7)
活动是什么e
?您需要将事件参数命名为click()
函数才能使用它。另外,要调用show_text
以使其具有this
,您需要在元素上调用它:
$info_items.click(function (event) {
// 'this' is the element in $info_items which was clicked
// invoke show_text on the element in question
$(this).show_text(event);
});
您的最终)
行还有一个额外的});
。
答案 1 :(得分:2)
您可以使用jQuery bind
将多个事件附加到单个函数。
$('#whatever').bind('mouseover focus click', function() {
your_custom_function();
});
答案 2 :(得分:2)
你在找这样的东西吗?
var handle = function(event) {
$(event.currentTarget).show_text(event);
};
$info_items.bind('click blur', handle);