1

在我的 jQuery Mobile 代码中,我有一些 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");
}
4

2 回答 2

0

工作示例: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;
        }     
    });    
});
于 2013-05-29T16:17:20.990 回答
-1

没有e它应该event在您的标记中。IEjavascript: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
}

小提琴

查看活动

于 2013-05-29T16:12:17.300 回答