<script type="text/javascript">
function ChangeStyle()
{
document.getElementById("p1").innerHTML =
"<a href='javascript:void()' onclick=\"window.location.href='http://google.com'\">The New Link</a>";
}
</script>
<a id="p1" href="javascript:void()" onclick="ChangeStyle();alert('hello');">The Link</a>
Run Code Online (Sandbox Code Playgroud)
这是完整的代码。由于某种原因,警报会触发两次。我想不通。
我正在尝试使用以前存储的值将变量传递给 onClick 函数。我有一个数据库设置,可以在提供邮政编码时搜索商店位置。例如,在用户搜索邮政编码后,使用 ajax 调用生成以下链接。返回值“WAFHOH3”是与该特定商店关联的 ID:
生成的链接:
<input type="button" onclick="myfunction(WAFHOH1);" value="This Is My Store" data-store-code="WAFHOH3">
Run Code Online (Sandbox Code Playgroud)
基于此代码:
<div class="col-sm-3"><input type="button" onclick="myfunction(' + item.store_code + ');" value="This Is My Store" data-store-code="' + item.store_code + '"></div>
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果返回数字以外的任何内容,我会收到“未捕获的引用错误:WAFHOH3 未定义”控制台错误。当像下面的示例一样传递一个数字时,一切正常,我没有收到任何错误,并且应用程序继续按预期工作。
例如(这有效):
我尝试手动将字符串更改为数字,只是为了隔离任何与数据库相关的问题。我唯一的猜测是我的代码中有些东西可能试图将输入验证为数字。
ajax 调用的完整代码如下。
完整代码:
function myFunction() {
var searchValue = $('#foobar').val();
if (searchValue.length > 3) {
var acs_action = 'searchCction';
$.ajax({
async: false,
url: mysearchurl.url+'?action='+acs_action+'&term=' + searchValue,
type: 'POST',
data: {
name: searchValue
},
success: function (results) {
var data = $.parseJSON(results);
$('#resContainer').hide();
var …Run Code Online (Sandbox Code Playgroud) 我可以更改背景颜色红色、蓝色和绿色,但是当我单击“重置”按钮时,我在 Chrome(浏览器)中收到错误消息:
btnReset 不是一个函数,
单击“重置”按钮时如何使所有 div 为空白?
function btnRed() {
document.getElementById("Div1").style.backgroundColor="Red";
}
function btnGreen() {
document.getElementById("Div2").style.backgroundColor="Green";
}
function btnBlue() {
document.getElementById("Div3").style.backgroundColor="Blue";
}
function btnReset() {
document.getElementById("Div1").style.backgroundColor="Black";
document.getElementById("Div2").style.backgroundColor="white";
document.getElementById("Div3").style.backgroundColor="white";
}Run Code Online (Sandbox Code Playgroud)
#Div1
{
z-index: -2;
border: 1px solid black;
height: 300px;
width: 400px;
}
#Div2
{
z-index: -1;
border: 1px solid black;
width: 300px;
height: 200px;
margin: 50px 0 0 50px;
}
#Div3
{
border: 1px solid black;
width: 200px;
height: 150px;
margin: 23px 0 0 47px;
}
#DivBtn
{
margin-top: 30px; …Run Code Online (Sandbox Code Playgroud)我正在尝试使用 wxpython 检测位图上的 CLI。on_click 过程似乎在没有 CLIC 的情况下运行,并且在单击时不运行。我做错了什么?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import os
import wx
import wx.lib.agw.thumbnailctrl as TC
import Image
filename="Raphael-Poli-angle.png"
class MyForm(wx.Frame):
def on_clic(self):
print "clicked"
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Choose Dot in Picture", size=(700,500))
self.panel = wx.Panel(self, wx.ID_ANY)
png = wx.Image(filename, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
image=wx.StaticBitmap(self.panel, -1, png, (1, 1), (png.GetWidth(), png.GetHeight()))
image.Bind(wx.EVT_LEFT_DOWN, self.on_clic())
self.Show(True)
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud) 我试图单击一个排序图标,该图标将触发更改列表的顺序。
为了使其更简单,假设您有一个按钮和另一个按钮,并且它们位于彼此不同的 div 上。
<div>
//Button 1
<button onclick={"some_click_handler"}>
</div>
<div>
//Button 2
<button>
{this.state.someToggle ? true : false}
</button>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个TEditDelphi VCL 表单应用程序(包含在一个TFrame实例中,如果重要的话)。在用户指示他们完成编辑后,通过单击表单上的其他地方,插入符号和焦点将保留在此控件上,直到我单击另一个控件,然后该控件获得焦点。但是,TEdit无论用户单击何处,我都希望失去焦点。我希望我可以使用ActiveControl := nil结束对所选控件的关注,但我不确定在哪里调用它。
我想要的是焦点离开所选控件而不必将其转移到另一个控件。我可以在表单的OnClick事件中结束焦点,但是如果用户在我的表单上选择任何其他控件(也包含在框架中),这将不起作用,因为表单的OnClick事件没有被触发。OnClick为表单上的每个附加项目提供单独的事件似乎既不优雅又乏味。
实现这种行为的全局解决方案是什么?
这是我的 HTML
<mat-grid-list cols="3" rowHeight="150px">
<mat-grid-tile
*ngFor="let tile of tiles;index as j;"
[colspan]="tile.cols"
[rowspan]="tile.rows"
>
<div (onclick)="openbox();" style="z-index: 2">
{{tile.text}}<br>
<img src="https://images.unsplash.com/photo-1514888286974-6c03e2ca1dba?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1027&q=80" height="200px" width="260px">
</div>
</mat-grid-tile>
</mat-grid-list>
Run Code Online (Sandbox Code Playgroud)
Ts
export class RegistrationComponent implements OnInit {
...
openbox(){
console.log('clicked')
}
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
style="z-index: 2; position: relative;"
隐身
浏览器 Chrome Angular-9
我的目标是获取点击的 mat-grid-tile 的索引有没有其他方法可以做到这一点?
谢谢
为了演示我的问题,我将比较普通的 javascript 和 React。在javascript中,当我有
<div>
<button class="btn">1</button>
<button class="btn">2</button>
<button class="btn">3</button>
<button class="btn">4</button>
<button class="btn">5</button>
</div>
Run Code Online (Sandbox Code Playgroud)
我想为所有按钮添加一些功能,我可以这样做
const buttons = document.querySelectorAll(".btn");
buttons.forEach(btn=>{
btn.addEventListener("click",(e)=>{
//some code here
})
})
Run Code Online (Sandbox Code Playgroud)
在反应中,我怎样才能做同样的事情,而不是向每个按钮添加“onClick”?因为想象一下如果有 20 个这样的按钮:
<button className="btn" onClick={()=>{
//some code here
}}>button</button>
Run Code Online (Sandbox Code Playgroud)
我仍然可以像 javascript 那样使用 querySelector,但我听说这在 React 中是一个不好的做法。所以我想知道是否有其他方法可以使代码更清晰。
这是仅调用一次 onclick 事件的正常 javascript 代码:
<button onclick="myFunction(); this.onclick=null;">This button works only once</button>
<button onclick="myFunction()">This button works always</button>
<script>
function myFunction() {
console.log("hello");
}
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
普通 javascript 的技巧是这样的:
<button onclick="myFunction(); this.onclick=null;">
Run Code Online (Sandbox Code Playgroud)
但是,现在我想在 vue.js 中使用此功能,并且 vue.js 中的按钮如下所示:
<input
type="submit"
value="Start"
name="start_button"
@click="start"
/>
Run Code Online (Sandbox Code Playgroud)
谁能建议我如何在 vuejs 中调用一次事件......
如何使用JavaScript DOM将onclick事件应用于内部的链接iframe?
这是我正在尝试的不起作用:
document.getElementById('myIframe').contentDocument.getElementsByTagName('a').onclick = function();
Run Code Online (Sandbox Code Playgroud)
似乎没有错误抛出,我完全控制了这些东西iframe.
这是一些测试代码,看看我是否至少可以计算div我的数量iframe.
// access body
var docBody = document.getElementsByTagName("body")[0];
// create and load iframe element
var embed_results = document.createElement('iframe');
embed_results.id = "myIframe";
embed_results.setAttribute("src", "http://www.mysite.com/syndication/php/embed.php");
// append to body
docBody.appendChild(embed_results);
// count the divs in iframe and alert
alert(document.getElementById("myIframe").contentDocument.getElementsByTagName('div').length);
Run Code Online (Sandbox Code Playgroud)