Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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,这是我现在使用的代码: $(document).ready(function(){ $('#btn2').click(function(){ $('iframe').contents().find('body').css('background-image', 'url(http://mk7vrlist.altervista.org/backgrounds/1.png)'); $('iframe').contents().find('body').css('opacity'

这是我现在使用的代码:

$(document).ready(function(){

 $('#btn2').click(function(){

    $('iframe').contents().find('body').css('background-image', 'url(http://mk7vrlist.altervista.org/backgrounds/1.png)');
    $('iframe').contents().find('body').css('opacity', 1.0);

 });
});
下面是HTML:

<select onchange="bg(this[this.selectedIndex].value);">
 <option value="0.png" id="btn1">1. Default skin</option>
 <option value="1.png" id="btn2">2. MK7 Collage</option>
 <option value="1.png" id="btn3">3. Solid Queen</option>
</select>

我对jQuery非常陌生,每次选择
选项时,我都不知道如何设置id(
选项值\u id
)和
背景图像\u url
。有什么帮助吗?

试试:

<select id="bgselector">
 <option value="0.png" id="btn1">1. Default skin</option>
 <option value="1.png" id="btn2">2. MK7 Collage</option>
 <option value="1.png" id="btn3">3. Solid Queen</option>
</select>

1.默认蒙皮
2.MK7拼贴
3.固体皇后
然后将所有jQuery代码放入ready函数中:

<script>
$(function() {
    var iframe_body = $('iframe').contents().find('body'); //cache this for performance;

    var set_bg = function(url) {
        iframe_body.css({
            'background-image': 'url(' + url + ')',
            'opacity': 1.0);
        });
    }

    $('#bgselector').change(function() {
        set_bg($(this).val());
    });

    $('#btn2').click(function(){
        set_bg('http://mk7vrlist.altervista.org/backgrounds/1.png');
    });
});
</script>

$(函数(){
var iframe_body=$('iframe').contents().find('body');//缓存此文件以获得性能;
var set_bg=函数(url){
iframe_body.css({
“背景图像”:“url('+url+')”,
“不透明度”:1.0);
});
}
$('#bgselector')。更改(函数(){
set_bg($(this.val());
});
$('#btn2')。单击(函数(){
设置背景('http://mk7vrlist.altervista.org/backgrounds/1.png');
});
});

似乎不需要添加click事件,因为您已经在每次值更改时调用了名为
bg
的函数。您可以在某个地方声明您的函数:

function bg(value) {
    var base = 'http://mk7vrlist.altervista.org/backgrounds/';
    $('iframe').contents().find('body').css({
        'background-image': 'url(' + (base + value) + ')',
        'opacity': 1
    });
}

基本上,您应该保留一个包含文件所在目录值的字符串,然后使用jquery的
change
方法在select更改时更改css的值。下面是一个使用div显示值输出的简单示例:

html


所以,你可以让一个函数返回一个函数。外部函数可以接受一个参数,因此您可以:

$(document).ready(function(){
    var clickHandlerGenerator = function(url) {
    return function(){
        $('iframe').contents().find('body').css('background-image', 'url(' + url + ')');
        $('iframe').contents().find('body').css('opacity', 1.0);
    });
    $('#btn2').click(clickHandlerGenerator('http://mk7vrlist.altervista.org/backgrounds/1.png'));
    $('#btn1').click(clickHandlerGenerator('http://mk7vrlist.altervista.org/backgrounds/WHATEVER.png'));
}

“我不知道如何用HTML设置id(选项值id)和背景图像url。”-好的,慢一点,我一个字都不懂。您到底想做什么?“$”(“#选项值_id”)。单击(函数(背景图像_url){'在这里我想更改'theu optionvalue'id'和'background\u image\u url'的值每次我点击一个'option'这个代码工作得很好,我将接受答案。谢谢!JQuery不会自动缓存选择吗?我与YUI合作得更多,如果我记得的话,这是可以的,但我不确定JQueryAs是否会自动缓存选择他,你可以锁链,但这对这个案子不起作用。
<div id="body">http://mk7vrlist.altervista.org/backgrounds/0.png</div>
<select id="sel">
 <option value="0.png" id="btn1">1. Default skin</option>
 <option value="1.png" id="btn2">2. MK7 Collage</option>
 <option value="2.png" id="btn3">3. Solid Queen</option>
</select>
var base = "http://mk7vrlist.altervista.org/backgrounds/";
$("#sel").change(function(){
 $("#body").html(base + this.value); 
});
$(document).ready(function(){
    var clickHandlerGenerator = function(url) {
    return function(){
        $('iframe').contents().find('body').css('background-image', 'url(' + url + ')');
        $('iframe').contents().find('body').css('opacity', 1.0);
    });
    $('#btn2').click(clickHandlerGenerator('http://mk7vrlist.altervista.org/backgrounds/1.png'));
    $('#btn1').click(clickHandlerGenerator('http://mk7vrlist.altervista.org/backgrounds/WHATEVER.png'));
}