據我瞭解,Firefox不會將Ctrl + Click從標籤傳遞到目標輸入字段。我不知道如何實現這一行爲。我有隱藏的複選框字段,以及它們各自標籤的樣式是唯一且可見的......單擊標籤時,單擊寄存器,但控制單擊不會。將Ctrl + Click事件傳遞給Firefox中的另一個元素
0
A
回答
1
我認爲HTML作爲
<form>
<label for="home" id="lblhome">home</label>
<input type="checkbox" name="home" id="home"><br>
</form>
我想一個事情,如果按Ctrl + cliked其他的事情,如果它只是點擊,該複選框單擊代碼
$("#home").click(function(e) {
if(e.ctrlKey)
alert('i just got ctrl+cliked');
else
alert('i just got clicked');
});
所以現在創建標籤檢查處理,如果是ctrl +點擊是,然後創建一個jQuery事件,並將其ctrlKey屬性設置爲true,並將觸發器複選框。
$('#lblhome').click(
function(e){
if(e.ctrlKey) {
alert('ctrl+click on label');
//cancel the normal click
e.preventDefault();
e.stopPropagation();
e2 = jQuery.Event("click");
//e2.which = 50; // for other key combos like CTRL+A+click
e2.ctrlKey = true;
$("#home").triggerHandler(e2);
$("#home").prop("checked", !$("#home").prop("checked"));//toggle checkbox state
}
});
1
這是一種哈克,但它的工作原理:http://jsbin.com/dogelehena/edit?html,console,output
<input type="checkbox" id="cb">
<label for="cb">Label</label>
<script>
$(function() {
var cb = $('#cb');
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
$('label').click(function (e) {
if (e.ctrlKey && isFirefox) {
var checked = cb.prop('checked');
cb.prop('checked', !checked);
}
});
});
</script>
首先,在安裝click
事件到label
而不是input
。這樣,按住ctrl時該事件不會被阻止,但複選框狀態不會更改。所以在回調中,我們檢查e.ctrlKey
,如果它是真的,我們手動更改複選框的狀態。
請注意,我添加了isFirefox
檢查,因爲雖然此功能修復了Firefox中的行爲,但它會在其他瀏覽器中中斷。
相關問題
- 1. JavaScript將mouseenter事件傳遞給另一個元素下面的元素
- 2. 將事件傳遞給另一個類
- 3. 將變量傳遞給Click事件
- 4. Selenium IDE FireFox:模擬CTRL + CLICK元素
- 5. 如何將javascript事件從一個元素傳遞到另一個元素?
- 6. 將另一個元素的ID傳遞給按鈕的onclick事件?
- 7. Powerbuilder 7.0 - 將事件的值傳遞給另一個事件
- 8. 將一個事件從子元素傳遞給曾祖父
- 9. Java:將一個事件傳遞給另一個組件
- 10. 如何將事件傳遞給另一個事件
- 11. 將事件傳遞給iOS中的另一個對象Objective C
- 12. 無法將單擊事件從一個元素傳輸到另一個元素在Firefox中
- 13. 將html元素內容傳遞給另一個視圖
- 14. 將LINQ元素作爲參數傳遞給另一個.xaml wp7
- 15. 選擇框調用另一個元素的click事件jQuery的
- 16. 選擇框調用另一個元素的click事件jQuery的
- 17. 將javascript變量傳遞給角度js中的ng-click事件
- 18. 將方法中的參數傳遞給Click事件方法#
- 19. 使用自己的「Click」事件將控件傳遞給函數
- 20. 從另一個click事件
- 21. 將事件傳遞給另一個函數
- 22. Famo.us將事件傳遞給另一個視圖
- 23. 如何將觸摸事件傳遞給另一個對象?
- 24. 將javascript onclick參數傳遞給另一頁上的元素
- 25. 如何通過shift + click事件傳遞給底層輸入元素?
- 26. 使用Angularjs將Click事件的值傳遞到另一個頁面
- 27. 如何將事件傳遞給。('click')上的命名函數?
- 28. 將兩個元素傳遞給函數
- 29. 如何將xml中的DOM元素傳遞給另一個活動
- 30. 如何將元素高度從一個指令傳遞給另一個指令?
接近我所需要的,但不完全,一爲有用的信息,但。我會牢記這一點。 –