0

我有这个外部 jQuery 代码:

jQuery(document).one('keydown', 'g',function (evt){
    if ($("#tb").html() == "0")
    {
        $("#tb").html("Testing the chicken.")
    } else {$("#tb").html("Chickens fart too.")}
return false;});

控制台中没有错误。

我知道这很愚蠢,但不要介意 .html() 中的文本。无论如何,每当我访问网页时,它都会将页面中的默认 0 替换为什么都没有。然后,当我按下任何键时,什么都没有发生。最终,我希望这个脚本最终做的是显示用户在tbdiv 中键入的字母或数字。

PS我是stackoverflow的新手,所以请告诉我我的格式是否错误或者我是否违反了规则。

好的,所以我编辑了代码,这就是我所拥有的:

$('#tb').on("keydown", function(event) {
    if ($("#tb").html() == "0")
    {
        $("#tb").html("Testing the chicken.")
    } else {$("#tb").html("Chickens fart too.")}
});

它仍然不起作用。

4

1 回答 1

1

div 元素没有keydown event. 只有具有焦点属性的元素才能拥有它。

所以我认为你指的是 div 内的输入。

HTML

<div id="tb">
    <span class="output"></span>
    <input type="text" />
</div>

JS

// Delegating the event on input to it's container
$('#tb').on("keydown", 'input', function (event) {
    // $(this).val() - Gets the value of the input on keydown
    if ($(this).val() === "") {
        // Set the html for span inside div
        $(".output").html("Testing the chicken.");
    } else {
        $(".output").html("Chickens fart too.");
    }
});

检查小提琴

// Bind event to the document which fires when document is focussed and 
// a key is pressed
$(document).on('keydown', function(event) {
    // Key code for g
    if(event.keyCode === 71) {
        // Bind the event to the input when g is pressed
        $('#tb input').on('keyup', inputKeydown);
        // unbind the event on document as no longet necessary
        $(document).off('keydown');
    }
    return;
});

function inputKeydown() {
    // $(this).val() - Gets the value of the input on keydown
    if ($(this).val() === "") {
        // Set the html for span inside div
        $(".output").html("Testing the chicken.");
    } else {
        $(".output").html("Chickens fart too.");
    }
}

另一个小提琴

于 2013-06-22T00:31:11.423 回答