.trigger('点击')不在mouseenter上工作

时间:2015-08-27 13:16:53

标签: javascript jquery

我有以下代码:

$("#full-year td").mouseenter(function () {
    $(this).trigger('click');
});

由于某种原因,.trigger('点击')只会触发光标所在的第一个td,而不会触发其他任何一个td。

这是一个使用.toggleClass而不是.trigger的工作示例。

https://jsfiddle.net/bx5zbor5/2/

这是一个不起作用的例子。(注意它在它登陆的第一个td上是如何发射的)

https://jsfiddle.net/Lym9wmaf/5/

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

您已使用#添加td(检查选择器:$("#td")),这意味着您正在选择ID为td的表格单元格,而不是每个表格单元格

将选择器更改为:$('td')

- 编辑 - 似乎工作...结帐https://jsfiddle.net/bx5zbor5/7/

答案 1 :(得分:1)

这可以帮到你。

$("#our_table td").mouseenter(function (evt) {
            $(evt.currentTarget).toggleClass("highlighted");
            $(evt.currentTarget).trigger("click");
        }).click(function(evt){
    console.log($(evt.currentTarget).html());
});

closure

如果您遇到任何问题,请与我们联系。

答案 2 :(得分:0)

光标永远不会落在任何td元素上,因为td不是可编辑的元素。

看看以下trigger是否适用于每个元素:

$("#our_table td").mouseenter(function () {
    $(this).trigger('click');
});

$("#our_table td").click(function(){
    console.log($(this).text());
})

Updated DEMO

每当鼠标输入td console的任何文本时,

答案 3 :(得分:0)

使用

$('#full_year id').click(function(){ //foo });

而不是

$('#full_year id').on('click', function(){ //foo });

正如你在评论中所说的那样。 https://api.jquery.com/click/ 这里说事件将绑定到点击,而在 https://api.jquery.com/on/ 只是说它添加了一个监听器,不绑定实际事件。