在我的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");
}
答案 0 :(得分:2)
工作示例: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;
}
});
});
答案 1 :(得分:0)
标记中不应有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
}
请参阅events