是否可以通过jQuery获取A标签的onClick属性的当前值?
例如,我有:
<a href="http://www.google.com" id="google" onclick="alert('hello')">Click</a>
Run Code Online (Sandbox Code Playgroud)
我想得到onclick代码,以便我可以存储它供以后使用(因为我将稍微更改onclick事件).
有可能做这样的事情:
var link_click = $("#google").onclick;
Run Code Online (Sandbox Code Playgroud)
要么:
var link_click = $("#google").click;
Run Code Online (Sandbox Code Playgroud)
所以,稍后在我的代码中,我可以重新应用该代码,或者必要时使用eval()它?
我有一个Ajax繁重的应用程序,可能有一个URL,如
http://example.com/myApp/#page=1
Run Code Online (Sandbox Code Playgroud)
当用户操作站点时,地址栏可以更改为类似的内容
http://example.com/myApp/#page=5
Run Code Online (Sandbox Code Playgroud)
无需重新加载页面.
我的问题是以下顺序:
如果我检测到某个更改,JavaScript会对其进行操作.
如何创建类似于ActionScript的自定义事件类?我的意思是,我可以使用一个类来发起我自己的事件,发送必要的数据.
我不想使用像YUI或jQuery这样的第三方库来实现它.我的目标是能够发送看起来像这样的事件.
document.addEventListener("customEvent", eventHandler, false);
function eventHandler(e){
alert(e.para1);
}
document.dispatchEvent(new CustomEvent("customEvent", para1, para2));
Run Code Online (Sandbox Code Playgroud)
请不要第三方库解决方案.
javascript events event-handling javascript-events actionscript-3
这是一个奇怪的用例,但我有我的理由:
我希望能够写作
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
Run Code Online (Sandbox Code Playgroud)
在我的标记中,并使用代码first.js,防止或延迟执行second.js.这可能在任何浏览器中都可以吗?如果first.js内联的内容怎么办?(如果有帮助,则假设第二个脚本标记具有id属性.)
由于我得到了几个错过我所得到的答案,我应该澄清一下:
first.js.任何需要更改页面原始HTML的内容second.js都是不可接受的.second.js通过Ajax以及使用执行它eval.这很容易.困难的部分是阻止立即执行second.js.second.js.因此,您不能仅second.js使用no-op函数替换每个调用的全局函数.(另外,这几乎肯定会导致错误.)如果你知道一个解决方案适用于某些浏览器但不适用于其他浏览器,我很乐意听到它.
示例:为了使这更具体,让我们说代码
<script type="text/javascript">
function func() {
window.meaningOfLife = 42;
window.loadSecond();
};
setTimeout(func, 10);
</script>
Run Code Online (Sandbox Code Playgroud)
在两个script包含之前,second.js包含该行
if (window.meaningOfLife !== 42) {throw new Error();}
Run Code Online (Sandbox Code Playgroud)
first.js应该能够通过延迟second.js执行直到window.loadSecond运行来防止此错误.(假设执行的window.loadSecond也是first.js.)它是不是不准碰window.meaningOfLife …
我有一个使用jQuery提交搜索的Web表单.表单本身不会触发提交事件,因为我抓住并删除它(这是一个更大,更复杂的表单的所有部分,我正在使用渐进增强来添加此功能).
在iPhone上,浏览器一旦聚焦,就会自动放大我的搜索输入.在"输入"键盘事件中,搜索是通过javascript执行的,我模糊了输入,它消除了屏幕上的iPhone键盘,但浏览器仍然放大到输入区域.
有没有办法通过javascript以编程方式再次缩小回到初始视口区域?
编辑:搜索执行没有重定向,这通常会在新页面加载时重置视口 - 所有内容都发生在这里的一个页面上.
我想知道是否可以在knockout.js中的事件上创建多个绑定
例:
<span data-bind="click: function1 function2, attr: {}"></span>
Run Code Online (Sandbox Code Playgroud) 我想知道是否有一个jQuery事件,我可以用它来确定特定DIV的top属性何时发生了变化.
例如,我在DIV之上有隐形内容.当该内容变得可见时,DIV向下移动.我想捕获该事件,然后使用该offset()函数来获取X/Y坐标.
有没有办法使用Javascript(和jQuery)打开一个选择框?
<select style="width:150px;">
<option value="1">1</option>
<option value="2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc arcu nunc, rhoncus ac dignissim at, rhoncus ac tellus.</option>
<option value="3">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我必须打开我的选择,因为bug.所有版本的IE(6,7,8)都削减了我的选择.据我所知,这没有css bugfix.目前我尝试执行以下操作:
var original_width = 0;
var selected_val = false;
if (jQuery.browser.msie) {
$('select').click(function(){
if (selected_val == false){
if(original_width == 0)
original_width = $(this).width();
$(this).css({
'position' : 'absolute',
'width' : 'auto'
});
}else{
$(this).css({
'position' : 'relative',
'width' : original_width
});
selected_val = false;
}
});
$('select').blur(function(){
$(this).css({
'position' : 'relative',
'width' : …Run Code Online (Sandbox Code Playgroud) 我想在html页面中模拟给定textarea元素上的keydown事件.因为我正在使用chrome,所以我调用initKeyboardEvent了我的变量,并将我想要输入的keyCode传递给了textarea.这是我尝试过的:
var keyEvent = document.createEvent('KeyboardEvent');
keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
inputNode.dispatchEvent(keyEvent);
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我正在键入字母,m但textarea只获取keyCode 13,这是Enter键.所以,我尝试了一个我在网上看到的覆盖代码,它将值设置为keyCodeVal,但没有成功
var keyEvent = document.createEvent('KeyboardEvent');
Object.defineProperty(keyEvent, 'keyCode', {
get : function() {
return this.keyCodeVal;
}
});
keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
keyEvent.keyCodeVal = 77;
inputNode.dispatchEvent(keyEvent);
Run Code Online (Sandbox Code Playgroud)
有谁知道如何设置keyCode值?
所以这是非常简单的,但我仍然是相当新的JavaScript,只是找到了JSFiddle.我正在尝试使用getElementById()禁用和启用按钮来查找元素.我错过了什么?
<form name="frm" >
<div id="chkObj">
<input type="checkbox" name="setChkBx" onclick="basicList.modifyAndEnableButton(this)"></input>
</div>
<div id="Hello">
<input type="button" name="btn" value="Hello"></input>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我用来添加复选框的列表,因为会有多个复选框:
var basicList = {
'items': {},
'modifyAndEnableButton': function(obj1) {
var element = document.getElementsByName("btn");
if (obj1.checked == true && element.getAttribute('disabled') == false) {
element.getAttribute('disabled') = true;
this.addRecord(obj2);
} else if (element.getAttribute('disabled') == true) {
if (hasItems == false) {
element.getAttribute('disabled') = false;
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/Arandolph0/E9zvc/3/
在此先感谢您的帮助.