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() {}