我试图通过右键单击具有禁用属性的选择框来调用一个函数。但我无法调用函数。如果我删除禁用属性,则右键单击有效。
function hello() {
alert('clicked');
window.event.returnValue = false;
}
#testSelect {
width: 100px;
height: 20px;
}
<select id="testSelect" oncontextmenu="hello()" disabled="true">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
我该怎么做?
您将无法在禁用
选择时触发任何鼠标事件。
但是 我添加了一个使用 div 来模拟效果的肮脏技巧:
在您的选择之后放置一个div
,将它放在您选择的顶部,并给它一个display: none
。
添加 CSS 规则 .yourSelect:disabled + .yourDiv{display: block;}
将新的 div 放在您选择的顶部。
然后您将能够捕获该 div 上的鼠标事件。
演示:
$(document).on('contextmenu','.dirty-hack', e => {
alert('clicked');
return false;
});
body {
margin: 0;
}
#testSelect {
width: 100px;
height: 20px;
}
div.dirty-hack {
position: absolute;
top: 0;
display: none;
width: 100px;
height: 20px;
}
#testSelect:disabled+.dirty-hack {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="testSelect" disabled="true">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<div class="dirty-hack"></div>