为什么这个jQuery没有点击? (带收音机按钮)

时间:2013-10-28 19:45:53

标签: 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")) {
        $("#text-sold-to").hide();
        $("#select-sold-to").show();
    }
}

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

所有这些都在文档准备好的包装器中。

3 个答案:

答案 0 :(得分:7)

从点击通话中的功能名称中删除()。所以..

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

答案 1 :(得分:2)

从点击通话中的功能名称中删除()

试试

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

答案 2 :(得分:1)

问题在于您传递给它应该是函数值的.click()方法的值,而是调用该函数,并因此传递该函数的返回值(等于{ {1}})

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

()

所以他们成了

$("#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);

在后者中明确指出右侧被分配到左侧。即函数值被分配给标识符。