Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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
jquery,将click事件附加到函数并与一系列javascript调用相结合?_Javascript_Jquery_Html - Fatal编程技术网

jquery,将click事件附加到函数并与一系列javascript调用相结合?

jquery,将click事件附加到函数并与一系列javascript调用相结合?,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试将一个单击事件附加到一个按钮上,该按钮运行来自参数和自身的调用 我想要的是始终显示第一个警报,然后执行作为字符串存储在myparam.onclick中的第二个警报 非工作尝试: var myparam = { onclick: 'alert("second");' }; $('#my_button_id').on('click', function(){ alert('first'); myparam.onclick }); 我知道如果我将myparam更改为合法函数,例如: va

我正在尝试将一个单击事件附加到一个按钮上,该按钮运行来自参数和自身的调用

我想要的是始终显示第一个警报,然后执行作为字符串存储在myparam.onclick中的第二个警报

非工作尝试:

var myparam = { onclick: 'alert("second");' };
$('#my_button_id').on('click', function(){ alert('first'); myparam.onclick }); 
我知道如果我将myparam更改为合法函数,例如:

var myparam = {onclick: function(){alert('second');} }
我可以这么说

$('#my_button_id').on('click', myparam.onclick);
但我仍然不知道如何将两者连接在一起。我不想每次调用myparam func时都调用第一个警报


非常感谢您的帮助。

您应该看到配偶:

我的小小帮助是

//Clousure 
(function($) {
    //Document.ready
    $(function(){
    //I think you want this ?
    let myparam = { onclick: function() { alert("second"); } };
    $('#my_button_id').on('click', function(){ alert('first'); myparam.onclick() }); 
    //Another way.
    function doAlert (messages) {
        alert(messages);
    }
    //Params Object
    let my_params = {
        onclick_first : function () { return doAlert('first') },
      onclick_second : function () { return doAlert('second') }
    }
    //Event Click
    $('#my_button_id').on('click',function(){
        //First Alert
        my_params.onclick_first();
      //Second Alert
      my_params.onclick_second();
    });
  });
})(jQuery);

你应该看到配偶:

我的小小帮助是

//Clousure 
(function($) {
    //Document.ready
    $(function(){
    //I think you want this ?
    let myparam = { onclick: function() { alert("second"); } };
    $('#my_button_id').on('click', function(){ alert('first'); myparam.onclick() }); 
    //Another way.
    function doAlert (messages) {
        alert(messages);
    }
    //Params Object
    let my_params = {
        onclick_first : function () { return doAlert('first') },
      onclick_second : function () { return doAlert('second') }
    }
    //Event Click
    $('#my_button_id').on('click',function(){
        //First Alert
        my_params.onclick_first();
      //Second Alert
      my_params.onclick_second();
    });
  });
})(jQuery);

很接近:

var myparam = {onclick: function(){alert('second');} };
$('#my_button_id').on('click', function(){ alert('first'); myparam.onclick() }); 
您在函数调用的末尾遗漏了一个括号:
myparam.onclick()

它已关闭:

var myparam = {onclick: function(){alert('second');} };
$('#my_button_id').on('click', function(){ alert('first'); myparam.onclick() }); 

函数调用末尾缺少括号:
myparam.onclick()

如果确实需要字符串,可以创建一个函数并将正文作为字符串提供,然后调用它:

var myparam={onclick:'alert(“second”);'};
$(“#我的_按钮_id”)。在('单击',函数()上{
警报(“第一”);
var fun=函数(myparam.onclick);
乐趣();

});如果确实需要字符串,可以创建一个函数并将正文作为字符串提供,然后调用它:

var myparam={onclick:'alert(“second”);'};
$(“#我的_按钮_id”)。在('单击',函数()上{
警报(“第一”);
var fun=函数(myparam.onclick);
乐趣();
});您可以使用该函数以字符串形式执行javascript代码

var myparam={
onclick:“警报(“第二”);”
};
$(“#我的_按钮_id”)。在('单击',函数()上{
警报(“第一”);
评估(myparam.onclick);
});

单击
您可以使用该函数以字符串形式执行javascript代码

var myparam={
onclick:“警报(“第二”);”
};
$(“#我的_按钮_id”)。在('单击',函数()上{
警报(“第一”);
评估(myparam.onclick);
});


单击
希望将其存储为字符串的用例是什么?必须在该字符串上使用
eval()
,但这并不是没有重大安全问题的。另一种方法是将命名函数存储为字符串,并将参数存储为其他属性,然后从以下属性调用命名函数
myFunctions[myparam.onclick](myparam.clickParams)
使用场景是一个json按钮数组,每个按钮都有自己的javascript调用,但是对于每个按钮,我还希望运行一个公共javascript调用,而不必重复将该调用放入数组。我想另一种选择是为附加函数使用第二个单独的jquery click处理程序。我更希望能够解析字符串,这样我也可以避免围绕javascript构建整个函数(){}调用。看看整个引导库是如何工作的,例如,您希望将其存储为字符串的用例是什么?必须在该字符串上使用
eval()
,但这并不是没有重大安全问题的。另一种方法是将命名函数存储为字符串,并将参数存储为其他属性,然后从以下属性调用命名函数
myFunctions[myparam.onclick](myparam.clickParams)
使用场景是一个json按钮数组,每个按钮都有自己的javascript调用,但是对于每个按钮,我还希望运行一个公共javascript调用,而不必重复将该调用放入数组。我想另一种选择是为附加函数使用第二个单独的jquery click处理程序。我更希望能够解析字符串,这样我也可以避免围绕javascript构建整个函数(){}调用。例如,看看整个引导库是如何工作的,但是那些函数不能被字符串化为JSONTH,这不是问题,我要看看,但是那些函数不能被字符串化为JSONTH,这不是问题,我要see@JaniB您询问如何执行第二个警报,该警报以字符串形式存储在
myparam.onclick
中。这个答案不是你要的。@JaniB你要问的是如何执行作为字符串存储在
myparam.onclick
中的第二个警报。这个答案不是你想要的。