2017-08-15 68 views
-1

设定元件值何时启我有一个事件处理程序将触发的用户点击成箱和输入文本:jquery的on处理通过jquery的

$('#FOO').on('keyup change paste', function() { 
    console.log('this event handler has fired.');  
}); 

我有另一段代码,其中,而不是允许用户输入自己的东西,我设置元素的值自己:

$("#FOO).text('BAR'); 

尽管此代码的工作,设置一个名为FOOBAR的值元素的文本价值,它不会触发事件处理器。除了我已经使用的keyup change paste之外,哪些on事件是我缺少的?

+0

如果它是一个'input'元素,触发使用'触发()一个'change'事件' –

+1

为什么downvote一个完全合理的问题? –

+0

“完全合法”的问题并没有使它有用或很好的研究。 –

回答

2

这些事件仅在用户启动它们时注册。由于您自己正在进行更改,因此您必须使用trigger()来模拟事件。

$('#FOO').on('keyup change paste', function() { 
 
    console.log('this event handler has fired.');  
 
}); 
 

 
$('#FOO').trigger('change').val('triggered');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="FOO"></textarea>

+1

@ZakariaAcharki这就是他所做的lmao –

+2

我反击他的所有好处。我实际测试过'trigger('change').text('asdf')'以及'.text('asdf')。trigger('change')',它们都不适合我。单独运行'.text('asdf')''然后在单独的一行上运行'.trigger('change')'虽然可以。感谢您的帮助! –