![](/img/trans.png)
[英]I want to call a function on onclick but that function should be inside another function
[英]How can I write JavaScript code in onClick function as well as I also want to call another function
我想在onClick函数中编写一个JavaScript代码行,并且还要在同一onClick中调用另一个函数。 我尝试如下:
<select onchange="updateSeatsDinnerCategory(3993); javascript: return function(){$(this).prop('disabled', true); return true;};" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>
</select>
但这不起作用。
function(){ ... }
是一个函数定义。 如果要立即执行内部代码,则还需要调用它:
(function(){ ... })()
您的代码将变为:
<select onchange="updateSeatsDinnerCategory(3993); return function(){$(this).prop('disabled', true); return true;}();" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>
</select>
更好地查看您的代码(假设这是您要使用的实际代码),您不需要IIFE,也不需要返回值(始终为true):
<select onchange="updateSeatsDinnerCategory(3993); $(this).prop('disabled', true);" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>
</select>
用这个:
<select onchange="updateSeatsDinnerCategory(3993);$(this).prop('disabled', true); return true;" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>
您可以这样:
<select onchange="(function() {updateSeatsDinnerCategory(3993); $(this).prop('disabled', true); return false;})()" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>
</select>
将可选回调传递给updateSeatsDinnerCategory函数
function updateSeatsDinnerCategory(seats, callback) {
// do whatever you wanted to do
if (typeof callback !== 'undefined') {
callback.call(this);
}
}
这样,您可以调用传递的函数,并跳过不需要的地方。
// this will call the "standard version"
updateSeatsDinnerCategory(3993);
// this will execute the callback function as well
updateSeatsDinnerCategory(3993, function () {alert('lol'));
当然,回调不必是匿名函数,只有作用域内的任何函数都可以使用。
编辑
有更好的方法检查未定义,但这是最简单的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.