gpt4 book ai didi

javascript - 从函数传递到函数名称的字符串变量不起作用

转载 作者:行者123 更新时间:2023-11-28 09:59:01 25 4
gpt4 key购买 nike

我试图使用下拉列表的值作为下一个函数的名称。该字符串正确并显示在警报中。在代码中显式写入名称也确实有效。但是在两个函数的范围内使用变量的部分根本不起作用。

    Drupal.behaviors.smart_inventory = {
attach: function(context, settings) {

// this should be in the scope of both functions
var selecttype;

$('#select-voc-content_types', context).change(function () {

contenttype = $( this ).val();
secondary = $('#' + contenttype);

if($(secondary).length > 0)
{
// set the select list. tried an alert and the variable string is set
selecttype = '#select-voc-' + $( this ).val();

$('.group-types').show();
$('#' + contenttype).show();
$('#object-ajax-form').hide();
}
else
{
$('#object-node-form-message').show();
$.post('smart_inventory/ajax', { "node-type": contenttype }, frmDrupal);
}

});

// this does not respond as jquery does not accept the string as an element name
// or maybe the variable is not available here?

$( selecttype, context ).change(function () {

var nodetype = $( this ).val();
$('#object-node-form-message').show();
$.post('smart_inventory/ajax', { "node-type": nodetype }, frmDrupal);

});

var frmDrupal = function(responseText) {

$('#object-ajax-form').show();
$('#object-ajax-form').html(responseText);
$('#object-node-form-message').hide();
}
}

};

如果发现这有效!但是嵌套函数是一种好的做法吗?还是足够好? ;

    Drupal.behaviors.smart_inventory = {
attach: function(context, settings) {

var selecttype;

$('#select-voc-content_types', context).change(function (selecttype) {

contenttype = $( this ).val();
secondary = $('#' + contenttype);

if($(secondary).length > 0)
{
// set the select list
selecttype = '#select-voc-' + $( this ).val();

$('.group-types').show();
$('#' + contenttype).show();
$('#object-ajax-form').hide();
}
else
{
$('#object-node-form-message').show();
$.post('smart_inventory/ajax', { "node-type": contenttype }, frmDrupal);
}
$( selecttype , context ).change(function () {
var nodetype = $( this ).val();
$('#object-node-form-message').show();
$.post('smart_inventory/ajax', { "node-type": nodetype }, frmDrupal);
});

});

最佳答案

当您尝试使用它时,您的 selecttype 变量甚至还没有设置 - 只有当 ID 为 select-voc-content_types 的元素上的更改处理程序时,它才会设置> 被触发。

关于javascript - 从函数传递到函数名称的字符串变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9518358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com