在另一个javascript函数中嵌入javascript函数

在另一个javascript函数中嵌入javascript函数,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我有一个带有条件字段的表单,只有当用户选择“其他”单选按钮时才会显示该字段;然而,有条件的我不能让它正确地开火 表单有一个事件“cf.add”,当条件字段变为可见时触发,使用此jquery我在控制台中得到正确的响应: jQuery(document).on('cf.add',function()){ log('cf.add triggered'); });由于cf.add是一个自定义项,即使它是由您的表单发布的,您也可以让其他元素订阅事件: $("#fld_3169487_4").on('cf

我有一个带有条件字段的表单,只有当用户选择“其他”单选按钮时才会显示该字段;然而,有条件的我不能让它正确地开火

表单有一个事件“cf.add”,当条件字段变为可见时触发,使用此jquery我在控制台中得到正确的响应:

jQuery(document).on('cf.add',function()){
log('cf.add triggered');

});
由于
cf.add
是一个自定义项,即使它是由您的表单发布的,您也可以让其他元素订阅事件:

$("#fld_3169487_4").on('cf.add', function(event){
    if ($(this).val().indexOf("$") != 0)
    {
        $(this).val("$" +  $(this).val());
    }
});

使用
$(this)
,我们可以只针对事件附加到的字段。此外,事件发布者的数据可以通过
事件
参数传递给订阅者。

经过一些尝试,我发现:

jQuery( document ).on( 'cf.add', function(){
var otherField = $("#fld_3169487_3");
otherField.focus();
var dollarValue;

$(otherField).on("blur", function() {
    dollarValue = otherField.val();
    if (dollarValue.indexOf("$") != 0) {
        dollarValue = "$ " + dollarValue;
    }
    $(otherField).val(dollarValue);
});

}))

当你说“使可见”时,你到底在为此做什么?是否将字段动态添加到页面?另外,不要使用
blur
事件,使用
change
input
。嵌套函数在JavaScript中完全有效(事实上非常常见)。你的问题似乎是另外一个问题。@brad是的,该字段是由JS添加的,很抱歉,我最初对此不太清楚。感谢您对更改或输入的介绍,我将研究这些内容。@Lavert您需要在父元素上绑定一个事件。问题是您无法将事件侦听器添加到不存在的内容中。