Javascript 为什么不是';这个jQuery不是在单击时启动的吗?(带单选按钮)

Javascript 为什么不是';这个jQuery不是在单击时启动的吗?(带单选按钮),javascript,jquery,dom,click,radio-button,Javascript,Jquery,Dom,Click,Radio Button,所有这些都在文档就绪包装中。在单击调用中从函数名中删除()。所以 function showHideSoldTo() { if ($("#radio-text-sold-to").prop("checked")) { $("#select-sold-to").hide(); $("#text-sold-to").show(); } else if ($("#radio-select-sold-to").prop("checked")) {

所有这些都在文档就绪包装中。

在单击调用中从函数名中删除()。所以

function showHideSoldTo() {
    if ($("#radio-text-sold-to").prop("checked")) {
        $("#select-sold-to").hide();
        $("#text-sold-to").show();
    } else if ($("#radio-select-sold-to").prop("checked")) {
        $("#text-sold-to").hide();
        $("#select-sold-to").show();
    }
}

$("#radio-text-sold-to").click(showHideSoldTo());
$("#radio-select-sold-to").click(showHideSoldTo());
从单击调用中的函数名中删除()

试试看

$("#radio-text-sold-to").click(showHideSoldTo);
...

问题在于传递给
方法的值。click()
方法应该是一个函数值,但实际上是调用该函数,因此传递该函数的返回值(等于
未定义的

修复很简单,您需要删除这两行中的
()

$("#radio-text-sold-to").click(showHideSoldTo);
$("#radio-select-sold-to").click(showHideSoldTo);
所以他们变得

$("#radio-text-sold-to").click(showHideSoldTo());
$("#radio-select-sold-to").click(showHideSoldTo());
在javascript中,任何标识符都标识一个值。该值可能是一个简单的值,如整数,也可能是一个更复杂的对象,与作为回调或事件处理程序传递的值一样,它可能是一个函数值

这两行代码基本相同

$("#radio-text-sold-to").click(showHideSoldTo);
$("#radio-select-sold-to").click(showHideSoldTo);

在后者中,很明显,右手边被分配给左手边。即,函数值被分配给标识符。

您使用的是哪个版本的jQuery?请包含您的HTMLD,它比我的答案更完整;)
function myFoo() {}
var myFoo = function() {}