我有这个功能:
$("#border-radius").click(function(){
var value = $("#border-radius").attr("value");
$("div.editable").click(function (e) {
e.stopPropagation();
showUser(value, '2', this.id)
$(this).css({
"-webkit-border-radius": value
});
});
});
它读取文本框的值,
input type="text" id="border-radius" value="20px"
...并做了一些与我的问题无关的事情。
文本框中包含id="border-radius"
,当点击它(并且有值)时,该函数会执行,如下所示:$("#border-radius").click(function(){ ...do some stuff...
基本上,我希望能够在文本框中键入一个值,然后单击一个对象(提交按钮或div,最好是一个div),然后让它执行以下功能:$("#border-radius").click(function(){ ...do some stuff...
而不是必须单击文本框本身
我可以添加/更改什么才能启用此功能?
答案 0 :(得分:0)
将点击处理程序放在#my-button
或任何按钮上。
$("#my-button").click(function(){
var value = ... /* your original code */
});
它仍然可以使用,因为您获得的值如$("#border-radius").attr("value");
而不是$(this).attr("value");
。因此,您需要更改的是将click函数附加到哪个元素。
或者,如果你想保留两个处理程序,你可以将它用于这两个元素:
var commonHandler = function(){
var value = ... /* your original code */
};
$("#border-radius").click(commonHandler);
$("#my-button").click(commonHandler);
您还可以触发#border-radius
的点击事件,但这将执行附加在其上的所有事件处理程序:
$("#my-button").click(function () {
$("#border-radius").click();
// or $("#border-radius").trigger('click');
});
答案 1 :(得分:0)
我认为您需要确定事件目标。
你可以通过
来做到这一点事件目标属性
示例
$(document).ready(function() {
$("#border-radius").click(function(event) {
alert(event.target.id);
//match target id and than proceed futher
});
});