以下代码有什么区别吗?
$('#whatever').on('click', function() {
/* your code here */
});
Run Code Online (Sandbox Code Playgroud)
和
$('#whatever').click(function() {
/* your code here */
});
Run Code Online (Sandbox Code Playgroud) 码:
$('#Inputfield').keyup(function(e)
{
if(e.which == 13)
{
functionXyz();
}
else
{
functionZyx();
}
});
$(document).keyup(function(exit) {
if (exit.keyCode == 27) { functionZzy(); }
});
Run Code Online (Sandbox Code Playgroud)
问题:如何删除keyCode == 27的keyup事件处理程序并保持其他$(document).keyup事件处理程序完好无损?
jQuery允许通过以下任一方式以编程方式触发表单提交:
$('.js-form-class-hook').submit();
$('.js-form-class-hook').trigger('submit');
注:我的理解是,.trigger('submit')是.submit()什么.on('submit',function(e){});是.submit(function(e){});。简而言之,这.trigger('submit')是比.submit()以编程方式提交表单更强大的方法。
我已经知道.on('submit',function(e){});和之间的一些区别.submit(function(e){});,请参阅我的答案jQuery中$(form).submit和$(form).on(“ submit”)之间有什么区别?,我现在想更好地了解的作用.trigger('submit')。
我的结论是:经过一些研究,我发现使用.trigger('submit')似乎提供了允许传递任意数据的“唯一”(尽管非常强大)优势。
用法示例1:
例如,这可以用于区分“ 人 ”对“ 程序化 ”表单提交。
在jsbin.com/jivexawixonu/1/edit?html,js,console,output上查看实时演示(单击右上角的Run / Clear)。
的HTML
<form class="js-form-hook-xyz">
<button>Submit form</button>
</form>
Run Code Online (Sandbox Code Playgroud)
jQuery的
var pleaseConfirmSubmission = function( formElem ){
// ... some conditions checks
// if condition met, submit with a flag
formElem.trigger( "submit" , ['isProgrammaticalSubmission'] );
}
$("body").on("submit", ".js-form-hook-xyz", function(event, isProgrammaticalSubmission) {
console.log("on …Run Code Online (Sandbox Code Playgroud)