Jquery了解onclick更改是如何工作的?

Jquery了解onclick更改是如何工作的?,jquery,onclick,forms,Jquery,Onclick,Forms,下面是一个简单的jquery代码: $(document).ready(function() { /*$(function() { // Sets the value of the submit_button_type field if the 'Submit & Add // Another button is clicked. $('#submit-id-submit_and_add').click(function() { $('#id_

下面是一个简单的jquery代码:

$(document).ready(function() {


/*$(function() {
    // Sets the value of the submit_button_type field if the 'Submit & Add
    // Another button is clicked.
    $('#submit-id-submit_and_add').click(function() {
        $('#id_submit_button_type').val('submit_and_add');
    });
}); */

$('#submit-id-submit_and_add').click(function() {
        $('#id_submit_button_type').val('submit_and_add');
    });
}
以上两者有什么区别? 在第一个示例中,我将click处理程序包含在函数中 在第二部分中,我对其进行了全局定义

单击按钮时,第一个函数是否会在文档准备就绪时运行两次,另一个运行两次

全球定义的第二种方式,是如何工作的。 是否仅在单击发生时对其进行评估

假设我的html是

<input id="id_submit_button_type" name="submit_button_type" type="hidden" />
<input type="submit" name="submit_and_add" value="Save &amp; Add Another" id="submit-id-submit_and_add"/>
我是Jquery的初学者。所以这些怀疑可能是愚蠢的。 谢谢你的耐心

$(function() {
    <code>
});
缩写为:

$(document).ready(function() {
    <code>
});
因此,第一个版本要求在文档准备好后绑定处理程序。但由于所有代码都在另一个文档就绪处理程序中,它已经在等待该事件,因此额外的包装器没有任何效果。所以这两个版本是等价的

如果希望命名函数执行单击处理程序的操作,可以执行以下操作:

function somefunction() {
    $('#id_submit_button_type').val('submit_and_add');
}

$(document).ready(function() {
    $('#submit-id-submit_and_add').click(somefunction);
});

谢谢如何在表单元素中附加onclick属性并在js文件中分配相应的函数。(问题的最后一部分)我搞不懂你在那里想干什么。
somefunction()
应该做什么?太好了!。我是否仍然需要
$('#submit-id-submit_和_add')。在
文档中单击(somefunction)
。准备好了
,因为我在输入元素中附加了处理程序,例如
,如果您要用
onclick=“function()”
绑定处理程序,那么您就不需要它了。它们是将单击处理程序绑定到元素的两种不同方式。但是,通常认为使用jQuery绑定而不是内联绑定更为惯用。如果我像上面那样命名函数,除非我绑定到
onclick=somefunction()
,否则该函数如何调用。内联绑定仍在调用jquery函数,对吗?对不起,我是jquery的业余爱好者,我的问题可能很傻
$(document).ready(function() {
    <code>
});
function somefunction() {
    $('#id_submit_button_type').val('submit_and_add');
}

$(document).ready(function() {
    $('#submit-id-submit_and_add').click(somefunction);
});