0

我有一些创建三个 jQuery 图标的 HTML 代码:

<span class="ui-icon ui-icon-circle-close one-click" data-customer-id="1"></span>
<span class="ui-icon ui-icon-circle-close one-click" data-customer-id="2"></span>
<span class="ui-icon ui-icon-circle-close one-click" data-customer-id="3"></span>

还有一些 JavaScript jQuery 代码,我希望每个单击的图标触发一次。当我使用它时它工作正常:

$(".one-click").one("click", function() { alert(this.dataset.customerId) } );

但是,当我尝试使用我自己的一个功能时,它只会在单击的第一个图标时触发。当第一次点击另一个图标时它永远不会触发:

$(".one-click").one("click", function() { my_custom_function(this.dataset.customerId) } );

它适用于单击的第一个图标,但不会触发单击的其他图标。jQuery 文档说它应该为每个事件类型的每个元素触发一次。我错过了什么?my_custom_function应该为单击的每个元素执行...

编辑:

我应该详细说明my_custom_function。它实际上是从 Web 服务器重新加载跨度。具体来说,它们包含在一个 div 中:

<div id="my_div">
    <span class="ui-icon ui-icon-circle-close one-click" data-customer-id="1"></span>
    <span class="ui-icon ui-icon-circle-close one-click" data-customer-id="2"></span>
    <span class="ui-icon ui-icon-circle-close one-click" data-customer-id="3"></span>
</div>

...在 my_custom_function 内部的某个地方,我使用$("#my_div").load("/some_url/"). 在注释掉这条负载线后,这些功能似乎正在正确触发。之后如何应用一次性触发功能load()?再次调用one()元素似乎并没有奏效。

4

2 回答 2

1

看一看 :

<span class="ui-icon ui-icon-circle-close one-click" data-customer-id="1">s1</span>
<span class="ui-icon ui-icon-circle-close one-click" data-customer-id="2">s2</span>
<span class="ui-icon ui-icon-circle-close one-click" data-customer-id="3">s3</span>

$(document).ready(function(){
    function my_custom_function(cust_id) {
        alert(cust_id);
    }
    $(".one-click").one("click", function() {
        my_custom_function(this.dataset.customerId);
    });
});

http://jsfiddle.net/F7Kdy/5/

于 2013-11-08T20:41:28.770 回答
0

要么将其重写为:

$(".one-click").one("click", my_custom_function), 

或将其构造为这样的可调用函数:http: //jsfiddle.net/scott_in_ct/QbpC8/

于 2013-11-08T20:37:16.123 回答