如果是静态的html代码,那么a标签的click事件是可以触发的
但是,通过js生成的html代码,无法触发click事件,这是为什么?
可以通过为a标签加个href,调用js方法触发事件,但是我不想这样
有什么办法解决?
var str = "<div class=\"region-head\">选择省份</div><ul id=\"ulProvince\" class=\"clearfix\">";
var arraycode = astr.split("|");
for (i = 0; i < arraycode.length; i++) {
var tempstr = arraycode[i].split(",");
str += "<li><a id=\"" + tempstr[0] + "\">" + tempstr[1] + "</a></li>";
}
str +="</ul>";
$('#' + divid).html(str);$("#ulProvince a").click(function(){
alert(1);
//$('#selectProvince').attr("value", this.innerHTML ) ;
//$('#provinceId').attr("value", this.id);
//targetId.hide();
});
但是,通过js生成的html代码,无法触发click事件,这是为什么?
可以通过为a标签加个href,调用js方法触发事件,但是我不想这样
有什么办法解决?
var str = "<div class=\"region-head\">选择省份</div><ul id=\"ulProvince\" class=\"clearfix\">";
var arraycode = astr.split("|");
for (i = 0; i < arraycode.length; i++) {
var tempstr = arraycode[i].split(",");
str += "<li><a id=\"" + tempstr[0] + "\">" + tempstr[1] + "</a></li>";
}
str +="</ul>";
$('#' + divid).html(str);$("#ulProvince a").click(function(){
alert(1);
//$('#selectProvince').attr("value", this.innerHTML ) ;
//$('#provinceId').attr("value", this.id);
//targetId.hide();
});
解决方案 »
- 页面解析过程中的事件触发
- 请问如何在jQuery方法中判断触发方式的?
- JS/jQuery 怎么才能实现“要刷新的地方出现‘载入中...’字样”?
- 一个JS漂浮广告,在demo的html页面里面不会被浏览器屏蔽,放到aspx页面就被屏蔽了
- 高手帮忙,JS传递变量出错。。。
- 使得浏览器竖向滚动条滚到最下面的JavaScript语句
- 网站图片比较多,打开有点慢,怎么一边加载一这显示
- easyui combobox 全选时去除其他选项的问题
- 如何确保页面刷新时不会用cache里面的值
- 如何点击一个按钮打开word应用程序?Jscript与javascript的关系?
- 各位大侠帮帮忙:js 调用ocx 对象不支持属性或方法。
- 小问题谁来帮忙解决。
$("#ulProvince a").live('click', function() {
///
});
这里是把string字符串写入id为#xxx的元素当中 并将所有标记都解析出来
<div class="li">
<label class="lw" for="province"> 省 份:</label>
<input name="province" id="selectProvince" type="text" class="inputtext" maxlength="60"
value="请选择省份" readonly="readonly" style="cursor:hand"/>
<span class="red" id="remind3"></span>
<input id="provinceId" type="hidden" value="0" name="provinceIdHidden"/>
<div id="provinceTips" class="div-region"
style="position: absolute; left: 458px; top: 319px; z-index: 999; display: none;">
</div>
</div>
js代码var astr = "110000,北京|120000,天津|130000,河北|140000";
// 处理省份
$.fn.f_selectProvince = function(targetId) {
var _seft = this;
var targetId = $(targetId); this.click(function(){
var A_top = $(this).offset().top + $(this).outerHeight(true); // 1
var A_left = $(this).offset().left;
targetId.bgiframe();
//ShowProvinceList("provinceTips");
//显示在输入框下方
//targetId.show().css({"position":"absolute","top":A_top+"px" ,"left":A_left+"px"});
//指定位置显示 css控制
targetId.show();
}); $("#ulProvince a").click(function(){
alert(1);
$('#selectProvince').attr("value", this.innerHTML ) ;
$('#provinceId').attr("value", this.id);
targetId.hide();
});
$("#ulProvince a").live('click', function() {
alert(1);
});
$(document).click(function(event){
if(event.target.id!=_seft.selector.substring(1)){
targetId.hide();
}
});
targetId.click(function(e){
e.stopPropagation();
});
return this;
};
$(function(){
$("#selectProvince").f_selectProvince("#provinceTips");
});
function ShowProvinceList(divid) {
var str = "<div class=\"region-head\">选择省份</div><ul id=\"ulProvince\" class=\"clearfix\">";
var arraycode = astr.split("|");
for (i = 0; i < arraycode.length; i++) {
var tempstr = arraycode[i].split(",");
str += "<li><a id=\"" + tempstr[0] + "\">" + tempstr[1] + "</a></li>";
}
str +="</ul>";
$('#' + divid).html(str);
}
再有就是jquery.bgiframe.js和jquery.js
//e.stopPropagation();//========注释掉这句就行了
});
不用jquery了,只能直接添加onclick事件解决