Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Jquery中的两个事件函数之间传递变量?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在Jquery中的两个事件函数之间传递变量?

Javascript 如何在Jquery中的两个事件函数之间传递变量?,javascript,jquery,Javascript,Jquery,我想将字符串变量从一个jquery事件传递到另一个jquery事件。 关于我的问题,我搜索了一些关于堆栈溢出的问题和解决方案,但是我找不到一个与我面临的问题相关的解决方案。我使用PythonFlask和Neo4j图形数据库,使用Jquery和AJAX执行一些后端操作 下面是我的jquery代码 <script type="text/javascript"> var asstName = ""; $('select#label_Name').change(funct

我想将字符串变量从一个jquery事件传递到另一个jquery事件。 关于我的问题,我搜索了一些关于堆栈溢出的问题和解决方案,但是我找不到一个与我面临的问题相关的解决方案。我使用PythonFlask和Neo4j图形数据库,使用Jquery和AJAX执行一些后端操作

下面是我的jquery代码

<script type="text/javascript">

    var asstName = "";

    $('select#label_Name').change(function(){
        asstName = $('#label_Name').val();
        console.log(asstName);
        $.ajax({
            url: '/get_asset',
            data: asstName,
            type: 'POST',
            dataType: 'json',
        }).done(function(data){
            // console.log(data);
            var print = "";
            for (i=0; i < data['nodeList'].length; i++){
                print += "<tr>" +
                            "<td>" + data['nodeList'][i]['Asset_Name'] + "</td>" +
                            "<td>" + data['nodeList'][i]['Asset_Manufacturer'] + "</td>" + 
                            "<td><button id=" + data['nodeList'][i]['Asset_Name'] + ">" + 
                            "<i style='color: red;' class='fa fa-trash'></i></button>" +
                            "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                            "<button id=" + data['nodeList'][i]['Asset_Name'] + ">" + 
                            "<i style='color: blue;' class='fa fa-pencil'></i></button>" +
                            "</td>" +
                         "</tr>";
           }
           $('tbody#tBody').html(print);
        })
    });

    $('#button').click(function(){
        var delName = $(this).attr('id');
        console.log(asstName);
        $.ajax({
            url: '/deleteNode',
            data: JSON.stringify(delName),
            dataType: 'json',
            type: 'POST' 
        }).done(function(data){
            console.log(data);
        })
    });

</script>


如何将字符串变量“asstName”传递给事件按钮click?

我认为您可以在事件按钮click中直接获取asstName的值,而不是为select事件解析它们

为什么不在按钮单击事件中添加此代码

var asstName = $('#label_Name').val();

我认为您可以在事件按钮单击中直接获得asstName的值,而不是为select事件解析它们

为什么不在按钮单击事件中添加此代码

var asstName = $('#label_Name').val();

您可以使用以下
$('#label_Name').val()获取单击处理程序中的下拉列表值,而不是访问变量

我的理解是,您只需要单击处理程序中的下拉列表值,而不是访问变量,您可以使用此
$('#label_Name').val()获取单击处理程序中的下拉列表值
我的理解是,您只需要单击处理程序中的下拉列表的值,就可以在更改选项列表并在单击按钮上订阅时发出事件(自定义事件)

例如: 设chnageEvent=new CustomEvent('valuechnaged',{detail:{ “价值”:, “currentVal”:值 }});

文件调度事件(chnageEvent)

无论何时更改选项列表并在单击按钮时订阅,都可以发出事件(自定义事件)

例如: 设chnageEvent=new CustomEvent('valuechnaged',{detail:{ “价值”:, “currentVal”:值 }});


文件调度事件(chnageEvent)

根据我的假设,以下是可能的解决方案

<script type="text/javascript">

    var asstName = "";

    $('select#label_Name').change(function(){
        asstName = $('#label_Name').val();
        console.log(asstName);
        $.ajax({
            url: '/get_asset',
            data: asstName,
            type: 'POST',
            dataType: 'json',
        }).done(function(data){
            // console.log(data);
            var print = "";
            for (i=0; i < data['nodeList'].length; i++){
                print += "<tr data-assetname="+asstName+">" + // added a new attr
                            "<td>" + data['nodeList'][i]['Asset_Name'] + "</td>" +
                            "<td>" + data['nodeList'][i]['Asset_Manufacturer'] + "</td>" + 
                            "<td><button id=" + data['nodeList'][i]['Asset_Name'] + ">" + 
                            "<i style='color: red;' class='fa fa-trash'></i></button>" +
                            "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                            "<button id=" + data['nodeList'][i]['Asset_Name'] + ">" + 
                            "<i style='color: blue;' class='fa fa-pencil'></i></button>" +
                            "</td>" +
                         "</tr>";
           }
           $('tbody#tBody').html(print);
        })
    });

    $('#button').click(function(){ // I assume this is the trash button click function. If yes, It wont work, because it is dynamically created element and you need to use $(document).on("click"). Also if the table has multiple row, then ID is duplicated.
        var delName = $(this).attr('id');
        asstName = $(this).closest('tr').attr('data-assetname');
        console.log(asstName);
        $.ajax({
            url: '/deleteNode',
            data: JSON.stringify(delName),
            dataType: 'json',
            type: 'POST' 
        }).done(function(data){
            console.log(data);
        })
    });

</script>

var asstName=“”;
$('select#label_Name')。更改(函数(){
asstName=$('#label_Name').val();
console.log(asstName);
$.ajax({
url:“/get_asset”,
资料来源:asstName,
键入:“POST”,
数据类型:“json”,
}).完成(功能(数据){
//控制台日志(数据);
var print=“”;
对于(i=0;i
根据我的假设,以下是可能的解决方案

<script type="text/javascript">

    var asstName = "";

    $('select#label_Name').change(function(){
        asstName = $('#label_Name').val();
        console.log(asstName);
        $.ajax({
            url: '/get_asset',
            data: asstName,
            type: 'POST',
            dataType: 'json',
        }).done(function(data){
            // console.log(data);
            var print = "";
            for (i=0; i < data['nodeList'].length; i++){
                print += "<tr data-assetname="+asstName+">" + // added a new attr
                            "<td>" + data['nodeList'][i]['Asset_Name'] + "</td>" +
                            "<td>" + data['nodeList'][i]['Asset_Manufacturer'] + "</td>" + 
                            "<td><button id=" + data['nodeList'][i]['Asset_Name'] + ">" + 
                            "<i style='color: red;' class='fa fa-trash'></i></button>" +
                            "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                            "<button id=" + data['nodeList'][i]['Asset_Name'] + ">" + 
                            "<i style='color: blue;' class='fa fa-pencil'></i></button>" +
                            "</td>" +
                         "</tr>";
           }
           $('tbody#tBody').html(print);
        })
    });

    $('#button').click(function(){ // I assume this is the trash button click function. If yes, It wont work, because it is dynamically created element and you need to use $(document).on("click"). Also if the table has multiple row, then ID is duplicated.
        var delName = $(this).attr('id');
        asstName = $(this).closest('tr').attr('data-assetname');
        console.log(asstName);
        $.ajax({
            url: '/deleteNode',
            data: JSON.stringify(delName),
            dataType: 'json',
            type: 'POST' 
        }).done(function(data){
            console.log(data);
        })
    });

</script>

var asstName=“”;
$('select#label_Name')。更改(函数(){
asstName=$('#label_Name').val();
console.log(asstName);
$.ajax({
url:“/get_asset”,
资料来源:asstName,
键入:“POST”,
数据类型:“json”,
}).完成(功能(数据){
//控制台日志(数据);
var print=“”;
对于(i=0;i
正如您所说,我做到了,我在按钮事件中添加了相同的按钮,但不起作用!!!我想传递我进入的助理名称。将“事件”更改为按钮。单击“事件”。!!正如你所说的,我在按钮事件中添加了相同的按钮,但不起作用!!!我想传递我进入的助理名称。将“事件”更改为按钮。单击“事件”。!!是的,这正是我打算做的。你能不能也提到当你点击按钮时抛出的错误。是的,这正是我打算做的。你能不能也提到当你点击按钮时抛出的错误。你能更详细地解释一下?谢谢每当下拉列表中有更改时,创建一个自定义事件,其中包含所需值的详细信息,并且您必须订阅