jQuery Mobile:为什么onClick和onKeyPress事件不工作



在我的jQuery移动代码,我有一些onClick和onKeyPress事件,但他们没有发射。我正在转换我的客户的网站,包括很多javascript函数的移动版本。我不知道它是否工作,如果我把一切转换成jQuery,但我不喜欢这样做,并希望保持javascript函数,因为它是。

是否有一种方法,使这项工作完全与javascript,而不是与jQuery?

onClick="javascript:alert('test');"似乎工作良好。它只是没有被调用的函数。

http://jsfiddle.net/jetlag/CtkTV/1/

HTML:

<div data-role="fieldcontain">
  <label for="textA">Input A</label>
  <input class="inputField" id="textA" value="" type="text" onFocus="javascript:clearText(this);" value="This is default text A" />
</div>
<div data-role="fieldcontain">
  <label for="textB">Input B</label>
  <input class="inputField" id="textB" value="" type="text" onKeyPress="javascript:keyPressEvent(e);" onFocus="javascript:clearText(this);" value="This is default text B" />
 </div>
 <div class="ui-grid-b">
   <div class="ui-block-a"><input type="button" id="goButton" onClick="javascript:goButtonPress();" value="Go" />
   </div>
   <div class="ui-block-b"><input type="button" id="testButton" onClick="javascript:alert('Alerted!');" value="Alert" />
   </div>
</div>
Javascript:

function keyPressEvent(e) {
  var evt = e || window.event;
  var keyPressed = evt.which || evt.keyCode;
  if (keyPressed == 13) {
    document.getElementById('goButton').click();
    evt.cancel = true;
  }
}
function goButtonPress() {
  alert('Button Pressed");
}

示例:http://jsfiddle.net/Gajotres/aLB6T/

虽然内联java脚本没有错,但在使用jQuery Mobile时不应该使用它。由于它的架构,它可能会导致大问题。这就是为什么如果可能的话使用经典的jQuery。

$(document).on('pagebeforeshow', '#index', function(){ 
    $(document).on('click', '#testButton', function(){ 
        alert('Alerted!');       
    });
    $(document).on('click', '#goButton', function(){ 
        alert('Button Pressed');      
    });        
    $(document).on('keypress', '#textB, #textA', function(evt){ 
        var keyPressed = evt.which || evt.keyCode;
        alert(keyPressed);
        if (keyPressed == 13) {
            document.getElementById('goButton').click();
            evt.cancel = true;
        }     
    });    
});

没有e,应该是event在你的标记。即javascript:keyPressEvent(event)

 <input class="inputField" id="textB" value="" type="text" onKeyPress="javascript:keyPressEvent(event);" onFocus="javascript:clearText(this);" value="This is default text B" />

也你的报价有误:-

function goButtonPress() {
  alert('Button Pressed"); <-- here quotes should match
}

小提琴

看到事件

最新更新