Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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中将变量传递给其他函数_Javascript_Jquery - Fatal编程技术网

在javascript中将变量传递给其他函数

在javascript中将变量传递给其他函数,javascript,jquery,Javascript,Jquery,如何将默认值传递给下面的mouseleave函数? 感谢您的帮助:)一个选项是在两个函数之外声明一个变量 $('.header_menu_item').on('mouseenter',function(){ var default_img = $(this).find('.header_menu_item_icon_img').attr('src'); var hover_img = $(this).find('.header_menu_item_icon_img').attr(

如何将默认值传递给下面的mouseleave函数?
感谢您的帮助:)

一个选项是在两个函数之外声明一个变量

$('.header_menu_item').on('mouseenter',function(){
    var default_img = $(this).find('.header_menu_item_icon_img').attr('src');
    var hover_img = $(this).find('.header_menu_item_icon_img').attr('data-hover');
    $(this).find('.header_menu_item_icon_img').prop('src',hover_img);
}).on('mouseleave',function(){
    $(this).find('.header_menu_item_icon_img').prop('src',default_img);
});

一个选项是在两个函数之外声明一个变量

$('.header_menu_item').on('mouseenter',function(){
    var default_img = $(this).find('.header_menu_item_icon_img').attr('src');
    var hover_img = $(this).find('.header_menu_item_icon_img').attr('data-hover');
    $(this).find('.header_menu_item_icon_img').prop('src',hover_img);
}).on('mouseleave',function(){
    $(this).find('.header_menu_item_icon_img').prop('src',default_img);
});

将其设置为元素本身的数据,然后稍后检索

var default_img = '';
$('.header_menu_item').on('mouseenter',function(){
default_img = $(this).find('.header_menu_item_icon_img').attr('src');
   var hover_img = $(this).find('.header_menu_item_icon_img').attr('data-hover');
   $(this).find('.header_menu_item_icon_img').prop('src',hover_img);
}).on('mouseleave',function(){
   $(this).find('.header_menu_item_icon_img').prop('src',default_img);
});
通过原生js

//setting
$(this).data('default_img',default_img);

//retrieving
var img = $(this).data('default_img'); 
您还可以在html本身上设置data-*属性,这样就不需要使用JS来设置初始数据

//setting
this.dataset['default_img'] = default_img;

//retrieving
var img = this.dataset['default_img'];


将其设置为元素本身的数据,然后稍后检索

var default_img = '';
$('.header_menu_item').on('mouseenter',function(){
default_img = $(this).find('.header_menu_item_icon_img').attr('src');
   var hover_img = $(this).find('.header_menu_item_icon_img').attr('data-hover');
   $(this).find('.header_menu_item_icon_img').prop('src',hover_img);
}).on('mouseleave',function(){
   $(this).find('.header_menu_item_icon_img').prop('src',default_img);
});
通过原生js

//setting
$(this).data('default_img',default_img);

//retrieving
var img = $(this).data('default_img'); 
您还可以在html本身上设置data-*属性,这样就不需要使用JS来设置初始数据

//setting
this.dataset['default_img'] = default_img;

//retrieving
var img = this.dataset['default_img'];


您需要使用全局变量。函数只能将变量直接传递给它调用的函数,而不能传递给外部调用的函数

<img src="http://example.com/someimg.jpg" data-default_img="http://example.com/someimg.jpg" />

您需要使用全局变量。函数只能将变量直接传递给它调用的函数,而不能传递给外部调用的函数

<img src="http://example.com/someimg.jpg" data-default_img="http://example.com/someimg.jpg" />

您不能直接传递它-您可以将其存储在外部变量中-但必须按每个项目进行传递:

var default_img;
$('.header_menu_item').on('mouseenter',function(){
    default_img = $(this).find('.header_menu_item_icon_img').attr('src');
    var hover_img = $(this).find('.header_menu_item_icon_img').attr('data-hover');
    $(this).find('.header_menu_item_icon_img').prop('src',hover_img);
}).on('mouseleave',function(){
    $(this).find('.header_menu_item_icon_img').prop('src',default_img);
});

您不能直接传递它-您可以将其存储在外部变量中-但必须按每个项目进行传递:

var default_img;
$('.header_menu_item').on('mouseenter',function(){
    default_img = $(this).find('.header_menu_item_icon_img').attr('src');
    var hover_img = $(this).find('.header_menu_item_icon_img').attr('data-hover');
    $(this).find('.header_menu_item_icon_img').prop('src',hover_img);
}).on('mouseleave',function(){
    $(this).find('.header_menu_item_icon_img').prop('src',default_img);
});

如果您输入两个$('.header\u menu\u item'),但只保留其中一个,则默认的\u img可能会有所不同,您必须按每个header\u菜单存储默认的\u img_item@ThomasFellinger除非它们是嵌套的,我怀疑这种情况会发生。我认为它们只是需要以某种方式重叠放置以获得失败。我们需要查看HTML以了解这是否重要。如果输入两个$('.header\u menu item'),则默认值可能有所不同,但只留下其中一个,您必须按每个header\u menu存储默认值_item@ThomasFellinger除非它们是嵌套的,我怀疑会发生这种情况。我认为它们只是需要以某种方式重叠放置以获得失败。我们需要查看HTML以了解这是否重要。只有用户希望在
mouseleave
函数中传递
default\u img
变量。。为什么需要每个功能??因为每个菜单项的默认值可能不同,并且可以并且将在全局变量中被覆盖,所以只有用户希望在
mouseleave
函数中传递
default\u img
变量。。为什么需要每个功能??因为每个菜单项的默认值会有所不同,并且会在全局变量中被覆盖