我有一个程序,我需要在其中更新数据库表,并在编辑框中输入信息,最后用一个按钮进行更新.但是,表单是在运行时创建的,包括按钮在内的所有元素也以相同的方式创建.我想办法允许数据库参数定义更新数据库的过程,例如:
procedure UpdateDatabase(Field1,Field2,Field3:string);
begin
//update database here...
end;
Run Code Online (Sandbox Code Playgroud)
然后将我的按钮的OnClick事件分配给此过程,其参数预填充如下:
Button1.OnClick := UpdateDatabase(Edit1.text,Edit2.Text,Edit3.Text);
Run Code Online (Sandbox Code Playgroud)
但是,类型不兼容,因为它需要不同的数据类型.我还注意到参数通常不能传递给OnClick函数.实际上有没有办法实现我提出的建议?
这是我当前的创建按钮代码:
function buttonCreate(onClickEvent: TProcedure;
left: integer; top: integer; width: integer; height: integer;
anchors: TAnchors; caption: string; parent: TWinControl; form: TForm;): TButton;
var
theButton: TButton;
begin
theButton := TButton.Create(form);
theButton.width := width;
theButton.height := height;
theButton.left := left;
theButton.top := top;
theButton.parent := parent;
theButton.anchors := anchors;
//theButton.OnClick := onClickEvent;
theButton.Caption := caption;
result := theButton;
end;
Run Code Online (Sandbox Code Playgroud)
任何和所有帮助表示赞赏!
我想在按下链接时从另一个div添加/删除一个类.我搜索了几个答案并在网上搜索但找不到适合我的答案.
这是我的代码:
<nav id="primary-menu"> <a class="menu-toggle">Browse</a>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Rumors</a></li>
<li><a href="#">Tutorials</a></li>
<li><a href="#">Miscellaneous</a></li>
</ul>
</nav> <!-- end #primary-menu -->
Run Code Online (Sandbox Code Playgroud)
我期待添加类active
到#primary-menu
时.menu-toggle
被点击.
对于JS/jQuery的,我试过click
,toggle
,toggleClass
,我已经试过内联的代码,我试过外部脚本.似乎没有什么工作,我不知道为什么.
我非常感谢你的回复.PS:我不是JS/jQuery的最佳人选.
我试图创建一个看起来和感觉像<a>
标签项的链接,但运行一个函数而不是使用href。
当我尝试将onclick函数应用于链接时,无论该链接从未被单击过,它都会立即调用该函数。此后任何尝试单击链接的尝试都会失败。
我究竟做错了什么?
的HTML
<div id="parent">
<a href="#" id="sendNode">Send</a>
</div>
Run Code Online (Sandbox Code Playgroud)
Java脚本
startFunction();
function secondFunction(){
window.alert("Already called!?");
}
function startFunction() {
var sentNode = document.createElement('a');
sentNode.setAttribute('href', "#");
sentNode.setAttribute('onclick', secondFunction());
//sentNode.onclick = secondFunction();
sentNode.innerHTML = "Sent Items";
//Add new element to parent
var parentNode = document.getElementById('parent');
var childNode = document.getElementById('sendNode');
parentNode.insertBefore(sentNode, childNode);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我尝试了两种添加此onclick函数的不同方法,两种方法都具有相同的效果。
我不是那样的JavaScript,我有以下问题.
进入JSP页面我有以下"链接":
<tr onmouseout="Javascript: this.style.background='#FFFFFF';
this.style.color='#003399';"
onmouseover="Javascript: this.style.background='#003399';
this.style.color='#FFFFFF'; this.style.cursor='hand';"
onclick="changeLocationTo('edi.do?serv=4.U');">
<td style="border-top: 0px;">
Tabella Anagrafica
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
因此,当用户单击tr元素时,将执行changeLocationTo() JavaScript函数向其传递String'edi.do?serv=4.U'.
在这个页面中,我已经定义了脚本部分:
<script language="JavaScript" src="js/Script.js">
function changeLocationTo(newLocation) {
alert("INTO changeLocationTo, nweLocation: " + newLocation);
loadingPopUp();
// you may add an timeout here or to handle a popup action like closing it
document.location.href = newLocation;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我点击前面的tr链接时,它不执行changeLocationTo()函数,每次点击tr时,进入FireBug控制台都显示此错误信息:
ReferenceError: changeLocationTo is not defined
Run Code Online (Sandbox Code Playgroud)
为什么?可能是什么问题呢?我该如何解决这个问题?我错过了什么?
TNX
我只是学习jquery,而且我遇到了我不理解的行为.我有:
HTML:
<div id="tour" data-location="london">
<button>Get Photos</button>
<ul class="photos"></ul>
</div>
Run Code Online (Sandbox Code Playgroud)
和jquery:
var tour = {
init: function () {
$("#tour").on("click", "button", alert("clicked"));
}
};
$(document).ready(function () {
alert("hello");
tour.init();
});
Run Code Online (Sandbox Code Playgroud)
正如我所料,在加载dom之后出现"hello"警报.然而,"点击"警报也会被触发,并且在按下按钮时不会随后触发.
我遇到了一个关于将OnItemClickListener设置为我的RecyclerView项目的问题.我尝试按照Android Studio的RecyclerView示例中描述的方式设置监听器.因此,在我的RecyclerView的ViewHolder类中设置了一个监听器.
public class ProgramViewHolder extends RecyclerView.ViewHolder {
protected TextView vName;
protected ImageView vProgramImage;
public ProgramViewHolder(View v) {
super(v);
vName = (TextView) v.findViewById(R.id.programName);
vProgramImage = (ImageView) v.findViewById(R.id.programImage);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// HERE PROBLEM !!
MainActivity.openSettings(1);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想调用我的MainActivity openSettings(int)的方法来加载片段:
public void openSettings(int layoutId) {
settingsFragment setFrag = new settingsFragment();
Bundle information = new Bundle();
information.putInt("layoutId", layoutId);
setFrag.setArguments(information);
getFragmentManager().beginTransaction()
.replace(R.id.fragmentContainer, setFrag)
.commit();
}
Run Code Online (Sandbox Code Playgroud)
但现在问题.当我尝试编译时,它说"非静态方法'openSettings(int)'不能从静态上下文中引用." 我完全不明白这个错误.为什么它是一个静态的上下文?ProgramViewHolder类不会声明为static.
最重要的部分:我该如何解决?我想为RecyclerView的每个项目设置一个OnClickListener,并调用MainActivity的公共方法.
非常感谢你,花时间来帮助我.
我需要一些If声明的帮助.我有这个div
<div id="features-dots">
<ul>
<a href="#"><li class="one"></li></a>
<a href="#"><li class="two"></li></a>
<a href="#"><li class="three"></li></a>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
和
<div class="feature_thumb">
<a class="feature_thumb" id="one" onclick="return false;"></a>
</div>
<div class="feature_thumb">
<a class="feature_thumb" id="two" onclick="return false;"></a>
</div>
<div class="feature_thumb">
<a class="feature_thumb" id="three" onclick="return false;"></a>
</div>
Run Code Online (Sandbox Code Playgroud)
并且如果点击#one,则想要向li.one添加一个类,如果单击#two则要添加到li.two等等...有人可以帮我这个吗?
我从我的一些不同的项目中注意到,每当我点击一些东西时我都会添加一个onClick函数,它总是需要两次点击才能在页面刚刚加载时让它们运行.我用它们的一般结构是:
function PageChange(){
var welc_p = document.getElementById("welcome");/**gathers page DIVs**/
var page01 = document.getElementById("page01");
var page02 = document.getElementById("page02");
var start = document.getElementById("start_btn");/**gathers buttons**/
var p1_back = document.getElementById("p1_back");
var p1_next = document.getElementById("p1_back");
var p2_back = document.getElementById("p2_back");
var p2_next = document.getElementById("p2_back");
start.onclick=function(){
page01.style.display="block";
welc_p.style.display="none";
window.location="#page01";
};
}/**function**/
Run Code Online (Sandbox Code Playgroud)
然后我在html中调用它的方式是
<div class="some_class" id="start_btn" onClick="PageChange()">!!!LETS GET STARTED!!!</div>
Run Code Online (Sandbox Code Playgroud)
这也是一个小提琴. https://jsfiddle.net/Optiq/42e3juta/
这通常是我每次想要创建此功能时的结构.我在这里看到了很多其他关于他们的项目的帖子,他们点击2次点击激活,但他们都没有做任何接近我想要完成的事情,看起来他们的问题在他们的编码中.有人知道为什么会这样吗?
我有这些复选框:
'<input type="checkbox" name="checkBox1" value="checked" class= "toggleable">';
'<input type="checkbox" name="checkBox2" value="checked" class= "toggleable">';
'<input type="checkbox" name="checkBox3" value="checked" class= "toggleable">';
Run Code Online (Sandbox Code Playgroud)
我可以通过叮叮当当来检查或取消选中.
现在我正在尝试添加一个复选框,单击时将立即选中或取消选中所有以前的复选框.
'<input type="checkbox" name="check_uncheck_all" value="false" id="id_check_uncheck_all">'
Run Code Online (Sandbox Code Playgroud)
单击复选框以立即选中或取消选中所有复选框"toggleable"时要执行的JS代码是什么?
我有一个向页面添加按钮的功能.
var count = 0;
function createOnclickFunction(number)
{
return function()
{
alert("This is button number " + number);
}
}
function addButton(data)
{
var newbutton = "..." //creates string from data
var element = document.getElementById("mydiv");
var children = element.children;
element.innerHTML = newbutton + element.innerHTML;
var currentCount = count;
children[0].onclick = createOnclickFunction(currentCount)
count++;
}
Run Code Online (Sandbox Code Playgroud)
它基本上根据一些数据在html中创建一个按钮.
每次我添加一个按钮,我希望它被添加到div的开头#mydiv
,并且由于newbutton也不是Element
,但是a String
,我必须修改innerHtml以将其添加到开头#mydiv
.
之后,我必须通过获取第一个孩子来获取元素(添加onclick)#mydiv
.
但是,在我的页面添加第二个按钮后,第一个按钮onclick不再有效.
如果我修改我的代码只添加一个按钮,一切正常.
现在,只需单击顶部按钮(最新添加的按钮)即可.
我怎样才能解决这个问题?
我也试过用element.firstChild
而不是element.children[0]
.
在此先感谢大家!
编辑:
这是一个jsfiddle :(你可以看到唯一有效的按钮是stackoverflow …