有没有办法检索内联javaScript调用的元素源?
我有一个这样的按钮:
<button onclick="doSomething('param')" id="id_button">action</button>
Run Code Online (Sandbox Code Playgroud)
注意:
我尝试过的:
function doSomething(param){
var source = event.target || event.srcElement;
console.log(source);
}
Run Code Online (Sandbox Code Playgroud)
在萤火虫上我得到的事件没有定义
编辑:在一些答案之后,使用jQuery覆盖事件处理是非常可接受的.我的问题是如何使用它的原始参数调用原始的onClick函数,并且不知道函数名称.
码:
<button onclick="doSomething('param')" id="id_button1">action1</button>
<button onclick="doAnotherSomething('param1', 'param2')" id="id_button1">action2</button>.
<button onclick="doDifferentThing()" id="id_button3">action3</button>
.
.
and so on..
Run Code Online (Sandbox Code Playgroud)
所以覆盖将是:
$(document).on('click', 'button', function(e) {
e.preventDefault();
var action = $(this).attr('onclick');
/**
* What to do here to call
* - doSomething(this, 'param'); if button1 is clicked
* - doAnotherSomething(this, 'param1', 'param2'); if button2 is clicked
* - doDifferentThing(this); if button3 is …
Run Code Online (Sandbox Code Playgroud) 有没有办法立即停止PHP代码执行?
我知道退出,但它明确指出:
终止脚本的执行.即使调用exit,也将始终执行关闭函数和对象析构函数.
所以我想要实现的是在我调用exit或者其他什么时完全停止PHP代码的执行.
有帮助吗?
编辑:简森回答后
试验1:
function newExit() {
__halt_compiler();
}
echo "start";
newExit();
echo "you should not see this";
Run Code Online (Sandbox Code Playgroud)
显示Fatal error: __HALT_COMPILER() can only be used from the outermost scope in
非常期待的.
试验2:
function newExit() {
include 'e.php';
}
echo "start";
newExit();
echo "you should not see this";
Run Code Online (Sandbox Code Playgroud)
e.php只包含 __halt_compiler();
这表明startyou不应该看到这个
编辑:我为什么要这样做?
我正在开发一个应用程序,其中包含一个专有库(通过我无法访问的虚拟主机配置文件所需)作为加密代码.是一种用于安全目的的监控库.其中一个行为是它注册了一些记录实例状态的关闭函数(它将统计数据保存到数据库中)
我想要做的是根据(远程IP)禁用某些特定条件的日志记录
我有2个div:
<div id="div1"></div>
<div id="div2">div2</div>?
Run Code Online (Sandbox Code Playgroud)
在我的CSS中:
#div1{ height:20px}?
Run Code Online (Sandbox Code Playgroud)
两个div都有20px的高度,检查演示
如何判断div是否由于内容而具有高度或者是以css还是内联样式设置?
这有助于我找出开发人员设置的维度或浏览器计算的维度.
有没有办法在DIV元素上听键盘事件?
我的代码:
?<div id="div" style="height:50px" class="ui-widget-content"></div>
<input id="input">??????????????
?$('#div,#input').keyup(function(event){
console.log(event.keyCode);
});??????
Run Code Online (Sandbox Code Playgroud)
实际上,代码只触发输入,我可以为div处理吗?
当我在链接上使用event.preventDefault()时,它可以工作,但是当我在按钮上使用它时却没有!
演示
我的代码:
<a id="link" href="http://www.google.com">link</a>
<button id="button" onclick="alert('an alert')">button</button>?
$('#link').click(function(event){
event.preventDefault();
});
$('#button').click(function(event){
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
链接操作被取消,但是当我单击按钮时,仍然执行onClick操作
任何帮助?我想要做的是在不更改按钮html的情况下阻止按钮onClick动作(我知道该怎么做
$('#button').removeAttr('onclick');
我真的很想知道jQuery 删除函数是否真的从DOM中删除了元素.
首先,我看了这里,但答案并不令人信服.
当我注意到我仍然可以操作我调用了删除函数的元素时,我遇到了这个问题.
我的代码:
<div id="container">
<div id="div">
This is a div
</div>
</div>
var div = $('#div');
$('#div').remove();
$('#container').append(div);
Run Code Online (Sandbox Code Playgroud)
注意:我的问题不是如何解决这个问题?但是我想知道这里发生了什么!
实际上,此代码不会从dom中删除#div,但如果我有任何数据设置为#div,它将丢失.我现在对删除函数的行为感到困惑.有人能解释一下吗?
DEMO
我确信div变量不只是dom元素的一个克隆,是对它的引用,因为当我操作div变量时,(比如div.html('something')
)DOM中的div得到更新.
还是我错了?
我的问题很简单
$('#button').removeAttr('type');
Run Code Online (Sandbox Code Playgroud)
在firebug上触发错误
type property can't be changed
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
谢谢
编辑
我想做的是:
阻止按钮提交表单.
注意:我的按钮作为html模板包含在内,表单代码无法从我这里访问.
就像是:
include 'form.php';
include 'buttons.php';
Run Code Online (Sandbox Code Playgroud)
我只能在buttons.php上控制