Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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_Html_Function_Radio Button - Fatal编程技术网

Javascript 创建可重用的jQuery函数

Javascript 创建可重用的jQuery函数,javascript,jquery,html,function,radio-button,Javascript,Jquery,Html,Function,Radio Button,我不是每次都重新编写大量代码,而是尝试将函数合并到我的工作中,但我在使其工作时遇到了困难 基本上,我有一些单选按钮,每次单击单选按钮时我都会执行一些操作。(我实际上正在加载iFrame)。但是,我需要为每个单选按钮设置不同的iFrame SRC,因此如何在函数中满足这一点 职能: jQuery.fn.switchPreview = function () { $('.liveDemoFrame').remove(); $('.liveDemoHand').append('<iframe c

我不是每次都重新编写大量代码,而是尝试将函数合并到我的工作中,但我在使其工作时遇到了困难

基本上,我有一些单选按钮,每次单击单选按钮时我都会执行一些操作。(我实际上正在加载iFrame)。但是,我需要为每个单选按钮设置不同的iFrame SRC,因此如何在函数中满足这一点

职能:

jQuery.fn.switchPreview = function () {
$('.liveDemoFrame').remove();
$('.liveDemoHand').append('<iframe class="liveDemoFrame" src="themes/src/' + themeName + '/" width="100%" height="300" scrolling="no"><p>Your browser does not support iframes.</p></iframe>');
$('.liveDemoHand').append('<div class="switchPreview"><div class="loadingPreview"></div></div>');
$('.liveDemoFrame').load(function() {
    $('.switchPreview').fadeOut();  
    $('.switchPreview').remove();   
    $('.liveDemoFrame').fadeIn();
});
return this;
}

我相信这是一件非常简单的事情,但我仍然在学习,所以小事情总是让我感到厌烦

为什么不更新iframe的src标记

$('#cTheme1').click(function () { 
    $('input:radio[name=mgChooseTheme]:nth(1)').attr('checked',true); 
            $('#liveDemoFrame').attr('src', <the new url>);
});
$('#cTheme1')。单击(函数(){
$('input:radio[name=mgChooseTheme]:n(1)').attr('checked',true);
$('liveDemoFrame').attr('src',);
});
那么您的iframe就已经需要成为页面的一部分:

<iframe id='liveDemoFrame' src='<default page>'></iframe>


我注意到您在iFrame上使用CLASS属性并使用它访问它——如果您只是想引用单个对象,那么您确实需要考虑使用ID属性。(如我上面的示例所示)

为什么不更新iframe的src标记

$('#cTheme1').click(function () { 
    $('input:radio[name=mgChooseTheme]:nth(1)').attr('checked',true); 
            $('#liveDemoFrame').attr('src', <the new url>);
});
$('#cTheme1')。单击(函数(){
$('input:radio[name=mgChooseTheme]:n(1)').attr('checked',true);
$('liveDemoFrame').attr('src',);
});
那么您的iframe就已经需要成为页面的一部分:

<iframe id='liveDemoFrame' src='<default page>'></iframe>


我注意到您在iFrame上使用CLASS属性并使用它访问它——如果您只是想引用单个对象,那么您确实需要考虑使用ID属性。(如上面的示例所示)

将themeName作为switchPreview函数的参数传递

-将函数的第一行更改为:

jQuery.fn.switchPreview = function (themeName) {
-对于调用函数的三次中的每一次,请确保传入参数,即:

$('.liveDemoFrame').switchPreview(themeName);

作为switchPreview函数的参数传入themeName

-将函数的第一行更改为:

jQuery.fn.switchPreview = function (themeName) {
-对于调用函数的三次中的每一次,请确保传入参数,即:

$('.liveDemoFrame').switchPreview(themeName);

也许在jQuery->中使用data()方法,然后将URL作为数据存储在单选按钮中?是的,非常简单,只需将themeName变量传递到switchPreview()方法中即可。是否可以使用attr更改iframe的src?还是我遗漏了什么?另外,由于switchPreview()函数不是动态的,正如在使用“this”时一样,您真的应该只使用普通的JS语法,如果您的所有选择器和变量都是使用data()预定义的,那么没有理由将其设为jQuery函数方法->然后将URL作为数据存储在单选按钮中?是的,非常简单,只需将themeName变量传递到switchPreview()方法中即可。可以使用attr更改iframe的src吗?还是我遗漏了什么?另外,由于switchPreview()函数不是动态的,正如在使用“this”时一样,您真的应该只使用普通的JS语法,如果您的所有选择器和变量都是预定义的,那么就没有理由将其设为jQuery函数。非常感谢,非常好用。谢谢。