我想在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>
但它不起作用。
答案 0 :(得分:1)
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,也不需要返回值(总是如此):
<select onchange="updateSeatsDinnerCategory(3993); $(this).prop('disabled', true);" class="width-80" id="rowDinnerCategorySelect3993">
<option value="-1">--select--</option>
<option value="1">Family</option>
</select>
答案 1 :(得分:1)
使用此:
<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>
答案 2 :(得分:1)
你可以这样做:
<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>
答案 3 :(得分:0)
将可选回调传递给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'));
回调当然不一定是匿名函数,只是范围内的任何函数都可以工作。
修改强>
有更好的方法来检查undefined,但这是最简单的方法。