将click函数绑定到动态div

时间:2013-07-12 13:08:26

标签: javascript jquery html

将使用唯一的div id创建此类div的数量, 当我点击我点击它时,它应显示该产品的警报, 我这样做是为了

<div id="xyz{productid}">
    Click Me
</div>
.....
<script type="text/javascript">
    var uuid="{productid}"
</script>
<script src="file1.js">
来自file1.js的

代码

$(function () {
    var d = "#xyz" + uuid;
    $(d).click(function () {
        alert("Hello" + uuid);
        return false;
    });
    alert(d);
});

所以代码也没关系,但它的基本问题是, 因为我在我们有产品数量的类别页面上这样做,所以此功能仅限于最后一个产品图块, 我希望它只被绑定到特定的div,只有它被称为

.............................. 得到了解决方案 抱歉迟到的回复,是在周末假期,但我解决了它的类型的架构,我们在页面上创建一个对象与每个瓷砖,并在页面加载时我们初始化所有的类变量,所以你可以得到单独的div id当一个函数绑定到它时,仍然可以使用其类变量中的数据,我在这里发布我的代码,所以如果有人想要可以使用它,

UniqeDiv= new function()
{   
var _this = this;   
var _divParams = null;
var _uuid=null;
//constructor   
new function(){     

//$(document).bind("ready", initialize);

//$(window).bind("unload", dispose);


_uuid=pUUID;

initialize();

$('#abcd_'+_uuid).bind("click",showRatingsMe)

dispose();


}

function initialize(){

}
function showRatingsMe(){       
    alert(_uuid);       
}   
function dispose(){ 
    _this = _divParams = null
}
}
//In a target file, im including this js file as below
<script type="text/javascript">
    var pUUID="${uuid}";        
</script>
<script type="text/javascript" src="http://localhost:8080/..../abc.js"></script>

3 个答案:

答案 0 :(得分:2)

您可以使用attribute selector with starts with通配符与jQuery on()绑定点击事件以动态添加元素。

$(document).on("click", "[id^=xyz]", function(){
   //your code here
   alert("Hello"+this.id);
   return false;
});

答案 1 :(得分:0)

我会为每个动态div添加一个类,以便更容易查询。在下面的示例中,我使用类dynamic标记动态添加的div,并应该应用此单击侦听器。

要附加事件,您可以使用jQuery的on()函数委托事件。委托事件将触发DOM中的当前和未来元素:

$(function() {  
    var d="#xyz"+uuid;
    $(document).on('click', 'div.dynamic', function() {
        alert("Hello"+uuid);
        return false;
    });     
});

您可以阅读有关事件委派here的更多信息。

答案 2 :(得分:0)

您可以使用

$( “[ID * = 'DIVID _']”)。单击(函数(){ });

但为此您需要确保所有div ID都以“divid _”开头。