jQuery超链接 - href值?文本] [1]
我正在使用jquery和附加到锚元素的click事件来解决问题.[1]:jQuery超链接 - href值?"这个"问题似乎是重复的,接受的答案似乎并没有解决问题.对不起,如果这是不礼貌的礼仪.
在我的.ready()函数中,我有:
jQuery("#id_of_anchor").click(function(event) { //start function when any update link is clicked
Function_that_does_ajax();
});
Run Code Online (Sandbox Code Playgroud)
我的主播看起来像这样:
<a href="#" id="id_of_anchor"> link text </a>
Run Code Online (Sandbox Code Playgroud)
但是当单击链接时,会根据需要执行ajax功能,但浏览器会滚动到页面顶部.不好.
我试过添加:
event.preventDefault();
Run Code Online (Sandbox Code Playgroud)
在调用我执行ajax的函数之前,但这没有帮助.我错过了什么?
澄清
我已经使用了每一种组合
return false;
event.preventDefault();
event.stopPropagation();
Run Code Online (Sandbox Code Playgroud)
在我调用js ajax函数之前和之后.它仍然滚动到顶部.
我使用jQuery生成HTML:
$("<a />")
.append("demo")
.click(function () { DemoFunc(event, value.Id) })
Run Code Online (Sandbox Code Playgroud)
这适用于Chrome和IE8,但在FireFox中我收到错误:"事件未定义".我改变了这样的代码:
.attr("onclick", "DemoFunc(event, " + value.Id + ")")
Run Code Online (Sandbox Code Playgroud)
它适用于Firefox,但不适用于Chrome和IE.
DemoFunc = function (e, assocGroupId) {
var target = (e.target) ? $(e.target) : $(e.srcElement);
....
}
Run Code Online (Sandbox Code Playgroud)
为什么!?救命!!
我的目标是检测网页上未访问的链接,然后创建一个greasemonkey脚本来点击这些链接.通过未访问的链接在这里我指的是我没有打开的链接.由于我可以看到所有浏览器都提供了更改已访问和未访问链接颜色的功能,因此可以以任何方式检测这些链接.在搜索时,我发现了这个链接:http://www.mozdev.org/pipermail/greasemonkey/2005-November/006821.html但有人告诉我,这已经不可能了.请帮忙.
<div class="main_div">
<div id="inner_div">
<span id="d1" class="get_clicked">click to get id</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何获取被点击元素的id?inner_div中存在的span将具有不同的id,因为我将使用jquery ajax从模型(MVC)加载span.所以会有'n'个跨度.所有跨度都将具有唯一ID.我想得到我点击的跨度的id.
单击时如何获取跨度的id?如何使用jQuery做到这一点?
根据条件,我想将按钮连接/重新连接到不同的功能.
假设我有一个按钮:
myButton = QtGui.QPushButton()
Run Code Online (Sandbox Code Playgroud)
对于这个例子,假设我检查是否有互联网连接.
if connected == True:
myButton.clicked.connect(function_A)
elif connected == False:
myButton.clicked.connect(function_B)
Run Code Online (Sandbox Code Playgroud)
首先,我想在重新分配/重新连接到另一个功能(function_A或function_B)之前断开按钮与已连接的任何功能的连接.其次,我已经注意到重新连接按钮后,需要额外点击按钮才能获得新功能.按钮重新连接到另一个功能后,它仍然会尝试运行上一个功能 - 一个按钮之前连接的功能(重新连接之前).请指教.提前致谢!
看起来小部件的.disconnect()方法可用于断开按钮与其连接的功能的连接.
myButton.disconnect()
Run Code Online (Sandbox Code Playgroud)
不幸的是.如果小部件没有连接到任何功能,.disconnect()会抛出错误.为了解决这个问题,我使用了Try/Except.但我宁愿使用更优雅的解决方案......
try: myButton.clicked.disconnect()
except Exception: pass
Run Code Online (Sandbox Code Playgroud) 我有一个ImageView叠加在一个内部,RelativeLayout并希望防止任何点击通过ImageView它后面的按钮等(因此实际上禁用整个RelativeLayout).
这是一种更简单的方法,然后迭代RelativeLayout视图并将它们设置为禁用,因为我目前正在使用此代码:
RelativeLayout rlTest = (RelativeLayout ) findViewById(R.id.rlTest);
for (int i = 0; i < rlTest.getChildCount(); i++) {
View view = rlTest.getChildAt(i);
view.setEnabled(true);
}
Run Code Online (Sandbox Code Playgroud) 我有以下jQuery表达式,在函数内部我需要对被点击的对象的引用,有没有办法做到这一点?
$('#tagList li').click(function() {
/* contents */
});
Run Code Online (Sandbox Code Playgroud) 我有一个带有标签的列表可以播放一些mp3文件.使用jQuery绑定'click'事件时它工作正常:
$oo.data({'__mp3play':true,'wapiHandle':h+0,'wapiIndex':o.ajaxPlayList[h].length})
.bind( 'click', function()
{ var wh = $j(this).data('wapiHandle');
if( typeof o.regObjects[wh] == 'object' && o.regObjects[wh].play(this.href))
{ return false; }
});
Run Code Online (Sandbox Code Playgroud)
单击鼠标左键时:当我的flash插件加载时,它会禁用默认处理,否则将正常打开.
但是:当我使用鼠标滚动按钮并单击它时,点击事件不会触发,链接正常打开.
我曾试图使用mousedown或mouseup事件,但没有帮助,链接总是正常打开,音乐开始播放的副作用也与flash播放器一起播放.
也preventDefault()根本不起作用.
有人可以告诉我如何检测鼠标中键单击(滚动按钮单击)?
谢谢您的意见.
PS:我已经尝试过关于本网站上"中间按钮"的其他解决方案.
在所有类型的浏览器中测试具有相同的结果.
编辑:这也不起作用,使用鼠标中键时链接将正常打开.使用鼠标左键时,没有任何反应.
$oo.bind( 'mousedown click mouseup', function(e)
{ e.preventDefault(); e.stopPropagation(); return false; });
Run Code Online (Sandbox Code Playgroud) 在我的页面上,我有很多响应点击事件的元素.有时我需要根据某些全局标志来阻止所有点击.有没有办法在集中的位置进行检查?
现在我在每个事件中检查标志,例如:
var canClick = false; // Global flag
// Sample click event:
$("#someDiv").click(function(){
if(!canClick) return;
// Some stuff ...
});
Run Code Online (Sandbox Code Playgroud)
我想做的是有一个元素在任何其他元素之前捕获所有点击事件.
我尝试在文档上执行此操作但这些事件仅在其他单击事件之后发生.
例:
$("#someDiv").click(function(){ console.log("someDiv click"); });
$(document).click(function(){ console.log("Document click"); });
// When I click on the someDiv element it prints:
> someDiv click
> Document click
Run Code Online (Sandbox Code Playgroud)
我还尝试在所有内容之上放置一个全屏div并使用它来捕获事件,但问题是没有任何点击通过这个全屏div传播.此外,我不想依赖于创建额外的元素来捕获点击,因为它感觉有点hacky.
我可以覆盖jQuery点击功能,以便我可以把我的小支票放在那里吗?
有什么明显的东西我在这里不见了吗?
谢谢你的帮助.
Phantomjs有这两个非常方便的回调onLoadStarted,onLoadFinished它允许你在页面加载时基本上暂停执行.但我一直在搜索,如果你click()提交按钮或超链接,我找不到相应的.发生了类似的页面加载,但onLoadStarted我没有调用此事件,因为没有明确的page.open()发生.我正试图找出一种干净的方法来暂停执行此负载.
一个解决方案显然是嵌套的setTimeout,但我想避免这种情况,因为它是hacky并依赖于试验和错误而不是可靠和更强大的东西,如测试某事或等待事件.
我错过了这种页面加载的特定回调吗?或者也许有某种通用的代码模式可以处理这种事情?
编辑:
我还没弄明白如何让它暂停.这是onLoadStarted()我调用click()命令时不调用该函数的代码:
var loadInProgress = false;
page.onLoadStarted = function() {
loadInProgress = true;
console.log("load started");
};
page.onLoadFinished = function() {
loadInProgress = false;
console.log("load finished");
};
page.open(loginPage.url, function (status) {
if (status !== 'success') {
console.log('Unable to access network');
fs.write(filePath + errorState, 1, 'w');
phantom.exit();
} else {
page.evaluate(function (loginPage, credentials) {
console.log('inside loginPage evaluate function...\n')
document.querySelector('input[id=' + loginPage.userId + ']').value = credentials.username; …Run Code Online (Sandbox Code Playgroud) click ×10
jquery ×6
events ×2
javascript ×2
scroll ×2
ajax ×1
anchor ×1
android ×1
button ×1
disconnect ×1
firefox ×1
greasemonkey ×1
hyperlink ×1
java ×1
pageload ×1
phantomjs ×1
propagation ×1
pyqt ×1
python ×1